在jQuery中找到具有特定属性值的所有元素


88

我需要找到具有特殊属性值的所有元素。

这是我需要查找的div(我有很多。)

<div imageId='imageN'>...

我只需要遍历具有 imageId='imageN'


6
class="imageN"为了有效的HTML,我建议使用。要么是data-imageId="imageN"为了有效的HTML5。使用前者,您将能够使用类选择器。
Andy E

安迪(Andy),其背后的原因是,这些div是从代码后台动态添加的,并且具有不同的ImageId,但类相同。
2011年

3
class="image imageN"如果有帮助,您可以有多个班级。
Val

如果他们已经有同一个班级,为什么不选择它呢?
Praxis Ashelin

Answers:


142
$('div[imageId="imageN"]').each(function() {
    // `this` is the div
});

要检查该属性的唯一存在性,无论使用哪个值,都可以改用ths选择器: $('div[imageId]')


4
@ThiefMaster-如果属性值不是恒定的(即它将变化),那么如何找到它?
开发人员

有两个问题:1-其他元素是什么... 2-其他值是什么...我可能在许多元素上使用data-food属性:div,img和td,其中每个都有不同的值。
dsdsdsdsd

@ParthoGanguly您可以通过以下方式使用变量:$('div [imageId =“'+ variableName +'”]')
卡马

1
该解决方案并没有真正回答此页面的标题。您正在搜索的是div元素。正确的解决方案是与实际元素无关的解决方案。
AndroidDev

164

尽管它不能完全回答问题,但是在寻找一种方法来获取仅具有给定属性名称(不按属性值过滤)的元素(可能是不同的标签名称)的集合时,我就落在了这里。我发现以下对我来说很有效:

$("*[attr-name]")

希望这有助于碰巧进入此页面的人寻找与我相同的东西:)。

更新:似乎不需要星号,即基于一些基本测试,以下内容似乎与上述内容相同(感谢马特指出):

$("[attr-name]")

完善!正是我想要的。
Paulius Matulionis,2013年

可能...我没有检查性能方面的信息(当时这不是我使用的重要因素)。
sammy34,2014年

3
和之间有什么区别$("[attr-name]")吗?(即否*
马修

是的,它们之间有一定的区别。星型符号在Firefox上引发错误!!!! (未
逃脱

$("[data-toggle='modal']")
除此之外

12

它不称为标签;您要查找的内容称为html属性。

$('div[imageId="imageN"]').each(function(i,el){
  $(el).html('changes');
  //do what ever you wish to this object :) 
});

5

您可以使用属性的部分值来使用(^)符号检测DOM元素。例如,您具有以下div:

<div id="abc_1"></div>
<div id="abc_2"></div>
<div id="xyz_3"></div>
<div id="xyz_4"></div>...

您可以使用以下代码:

var abc = $('div[id^=abc]')

这将返回一个div的DOM数组,其ID以开头abc

<div id="abc_1"></div>
<div id="abc_2"></div>

这是演示:http : //jsfiddle.net/mCuWS/


4

使用字符串串联。试试这个:

$('div[imageId="'+imageN +'"]').each(function() {
    $(this);   
});
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.