【发布时间】:2018-05-20 16:22:16
【问题描述】:
我正在尝试选择页面上的某个元素。所有元素都具有相同的类,唯一的例外是其中一些元素的背景图像不同。
我需要做的是仅将 jquery 代码应用于通过 if 语句选择的元素。
请注意,我无法编辑 HTML,我需要使用 jquery。
这是我的代码:
$('.repeated-element').each( function(){
if ( $(this).css('background-image').indexOf('mystringzzz') ) {
//do something
alert("works");
$(this).closest('div.someclass').addClass('aclassilike');
//stop loop
return false;
}
});
我已经很好地选择了元素并且 jquery 正在运行。我知道这一点,因为我收到了显示该部分 (if ( $(this).css('background-image').indexOf('mystringzzz') ) {) 有效的警报弹出窗口。
但是,问题是我只能将它应用于第一个元素(不是选择的元素)或所有元素。
如果我使用:
$(this).closest('div.someclass').addClass('aclassilike');
结果是它仅适用于页面上的第一次重复,而不是选定的重复。
或者,如果我使用:
$('.repeated-element').closest('div.someclass').addClass('aclassilike');
然后结果是它应用页面上的每个重复,不仅选定的。它应该只是被选中的那个。
如何仅将 jquery 代码应用于通过 if 语句选择的元素?
例如,
a) 在
.repeated-element里面,
b) 仅在外部样式表中包含background-imagecss,其中部分图像名称为mystringzzz,
c) 然后应用新的 jquery(在本例中添加另一个类)。
d) 但不要将其应用于background-image中不包含mystringzzz字符串的元素。
【问题讨论】:
-
我认为您的意图是仅应用于具有该背景的选定元素,对吧?
-
@Burimi 没错,这是我的意图。
标签: javascript jquery css function each