如何通过属性值从jQuery对象中获取特定元素
How to get a specific element from a jQuery object by its attribute value?
我有一个有几个元素的网站,像这样:
<g class="box" rel="1">...</g>
<g class="box" rel="2">...</g>
<g class="box" rel="3">...</g>
<g class="box" rel="4">...</g>
<g class="box" rel="5">...</g>
在我的代码中,我想在循环中改变这些元素的一些属性。我首先做的是这样的(它对我来说很好):
for(var i = 0, l = relValList.length; i < l; i+=1){
$(".box[rel=" + relValList[i] + "]").children().first().attr("fill","#000000");
}
现在我读了一篇jQuery最佳实践的文章,在那里我发现了一种叫做缓存的东西来提高性能。
所以我试了试。
//call this when page loaded
var boxes = $(".box");
//the good old loop
for(var i = 0, l = relValList.length; i < l; i+=1){
//here is my problem
boxes ????
}
通过rel属性从box中获取特定元素的最佳方法是什么?
谢谢!
您可以使用filter
方法,它遍历选定的元素并返回匹配的元素。filter
方法比链式字符串选择器快得多。
var $boxes = $(".box"),
$goldenOnes = $boxes.filter('[rel="golden"]');
试试filter
。它将选择器应用于现有的jQuery选择。
box.filter("[rel=" + relValList[i] + "]").children().first().attr("fill","#000000");
或者,您甚至不必遍历这些框。您可以像这样匹配具有rel
属性的每个框的第一个子框:
$('.box[rel] :first-child').attr("fill","#000000");
相关文章:
- 如何在jQuery中获取元素的形式
- 通过id和class属性获取元素
- Javascript:Can't使用getElementById获取元素
- 使用jquery.html()获取元素本身的html
- 如何从iframe内部获取元素
- Javascript函数获取元素内容
- 使用模板后,使用Angular获取元素属性值
- 获取元素类名的部分
- 从JSON.parse获取元素
- 获取元素内部的缩写
- 在不引用文档的情况下使用AngularJS获取元素
- 如何获取元素's的title属性
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- Javascript获取元素背景图像,但消除了“;url()”;
- Javascript:按类获取元素,但跳过某个类
- 当display:none时,getElementById()无法获取元素
- 我的ID获取元素不起作用
- 如何获取元素:使用javascript和CORS悬停背景
- 能够获取元素长度,但不能获取内部 HTML
- 如何使用jQuery在模板kendo UI中获取元素类