A-O*_*-OK 31 javascript jquery
我需要将一个元素传递给一个函数,然后在遍历父元素时匹配该特定元素.捕获(对于像我这样无能为力的人)是这个元素没有id.在下面的示例中,我希望每个元素都变为粉红色,除非单击的元素变为黄色
function colorize(element) {
element.parent().find('span').each(function() {
if ($(this)===element) { // the problem is this is always false
$(this).css('background','yellow');
} else {
$(this).css('background','pink');
}
});
}
$('span').click(function() {
colorize($(this));
});
Run Code Online (Sandbox Code Playgroud)
Rob*_*b W 45
比较JQuery对象将永远不会返回true,因为每个JQuery对象都是一个新对象,即使它们的选择器相等.
要比较元素,您必须检查DOM元素是否相等:
this === element.get(0);
Run Code Online (Sandbox Code Playgroud)
Nik*_*kov 18
您可以使用jQuery is()函数.原始答案可以在这里找到.
function colorize(element) {
element.parent().find('span').each(function() {
if ( $(this).is(element) ) {
$(this).css('background','yellow');
} else {
$(this).css('background','pink');
}
});
}
Run Code Online (Sandbox Code Playgroud)
Bru*_*oLM 17
使用 isEqualNode
this.isEqualNode(element)
Run Code Online (Sandbox Code Playgroud)
或使用isSameNode(已弃用)
this.isSameNode(element)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30140 次 |
| 最近记录: |