我必须在copyToLeft
内所有图像的onClick
事件上附加方法TD
。 TD位于名为mismatchList
的表格内,因此结构变为此mismatchList > tbody > tr > td > img
虽然我已经这样做了,但那是使用普通的javascript。我做的是,我在创建时在所有指定元素的copyToLeft(this);
事件上手动添加了onClick
方法。 [这是我想省略并使用jQuery以某种方式执行此操作的步骤]。
copyToLeft
的定义如下: -
function copyToLeft(obj){
leftObj = getLeftTD (obj); // my method which returns the adjacent Left TD
rightObj = getRightTD (obj);
if ( leftObj.innerHTML != rightObj.innerHTML ) {
leftObj.innerHTML = rightObj.innerHTML;
leftObj.bgColor = '#1DD50F';
}else{
alert ( 'Both values are same' );
}
}
如果需要,copyToLeft
方法的定义也可以更改。 [以防你认为,jQuery可以用来使这个方法更好:)]
而不是问另一个问题我只是添加新的要求:) [让我知道我是否应该创建新的一个]
我必须像我指定的那样向所有图像添加copyToLeft
方法,但是该图像应该是left_arrow.gif
,如果src是copyToRight
,则添加right_arrow.gif
方法。另外,我们如何在jQuery中获取相邻的左/右TD,因为我想重新定位getLeftTD
和getRightTD
方法?
答案 0 :(得分:4)
如果我已经正确地理解了你的问题,那么在jQuery中你可以将事件绑定为:
$(document).ready(function() {
$('mismatchList > tbody > tr > td > img').click(copyToLeft);
});
在copyToLeft
功能中,您不接受obj
作为输入参数,而this
将是图像。 $(this)
将是一个jQuery对象,包含图像,如果需要它...
答案 1 :(得分:1)
试试这段代码:
<table id="tbl">
<tbody>
<tr>
<td></td><td><img src="file:///...\delete.png" /></td>
</tr>
<tr>
<td></td><td><img src="file:///...\ok.png" /></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function(){
$("table#tbl img").click(function(){
var td=$(this).parents("td");
var tr=$(td).parents("tr");
var left=$(td).prev("td");
$(left).html($(td).html());
});
});
</script>
答案 2 :(得分:1)
你可以做这样的事情来匹配图像src。
$('#mismatchList > tbody > tr > td > img[src='left_arrow.gif']').click(copyToLeft);
$('#mismatchList > tbody > tr > td > img[src='right_arrow.gif']').click(copyToRight);
值得注意的是,匹配图像src的部分确实使用了src的全部内容,因此如果将图像移动到其他目录,它将停止工作。如果您只想匹配源的结尾,则可以使用$ =而不是仅使用=。
以下是TheVillageIdiots重写左侧复制功能的变体。
function copyToLeft() {
var cell = $(this).closest('td');
var leftObj = cell.prev();
var rightObj = cell.next();
if ( leftObj.html() != rightObj.html()) {
leftObj.html(rightObj.html());
leftObj.css('background-color','#1DD50F');
} else {
alert ( 'Both values are same' );
}
}
我的一部分也认为只有一个copyToSibling函数才有意义,你检查$(this).attr('src')是否为left_arrow.gif或right_arrow.gif并相应地采取行动,而不是两个我以前发过的选择器。