gpt4 book ai didi

javascript - 如何仅将 jquery 应用于使用 if 语句选择的元素?

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:07 25 4
gpt4 key购买 nike

我正在尝试选择页面上的某个元素。所有元素都具有相同的类,唯一的异常(exception)是其中一些元素的背景图像不同。

我需要做的是仅将 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) inside the .repeated-element,
b) ONLY which contains a background-image css in the external stylesheet which has part of the image name as mystringzzz,
c) then apply the new jquery (in this example adding another class).
d) But do not apply it to elements which do not contain the mystringzzz string in background-image.

最佳答案

问题的根源是您没有检查 indexOf() 中的索引是否不等于 -1称呼。如果您以问题的原始格式编写此内容,它将如下所示:

$('.repeated-element').each(function() {
if ($(this).css('background-image').indexOf('mystringzzz') !== -1) {
//do something
alert("works");
$(this).closest('div.someclass').addClass('aclassilike');
//stop loop
return false;
}
});

综上所述,jQuery 的方法有特定的用例,具体取决于场景。我强烈建议只使用 filter()在这种情况下:

$('.repeated-element').filter(function() {
return $(this).css('background-image').indexOf('mystringzzz') !== -1;
}).closest('div.someclass').addClass('aclassilike');

关于javascript - 如何仅将 jquery 应用于使用 if 语句选择的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47680182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com