Javascript 使用jquery按样式查找元素
如何使用HTML文档的样式属性在其中查找元素? 以下是一个例子: HTML:Javascript 使用jquery按样式查找元素,javascript,jquery,html,Javascript,Jquery,Html,如何使用HTML文档的样式属性在其中查找元素? 以下是一个例子: HTML: e1 div e2 e3 e4 e5 问题是如何选择,例如:z-index=4的元素。 以及如何选择z-index=8的所有div。如果样式设置为内联,则可以使用属性选择器: $('li[style*="z-index:4"]') //returns any li's with z-index = 4 看。这种方法的优点是速度非常快 如果通过样式表设置样式,则可以通过以下方式访问: var elem; v
- e1
div
- e2
- e3
- e4
- e5
问题是如何选择,例如:z-index=4的元素
。
以及如何选择z-index=8的所有div
。如果样式设置为内联,则可以使用属性选择器:
$('li[style*="z-index:4"]') //returns any li's with z-index = 4
看。这种方法的优点是速度非常快
如果通过样式表设置样式,则可以通过以下方式访问:
var elem;
var elems = $("li");
for(var i=0; i<elems.length; i++) {
if($(elems[i]).css('z-index') == '4') {
elem = elems[i]; //assign elem we found
break; //exit loop early
}
}
var元素;
变量元素=$(“li”);
对于(var i=0;i如果样式设置为内联,则可以使用属性选择器:
$('li[style*="z-index:4"]') //returns any li's with z-index = 4
看,这种方法的优点是速度非常快
如果通过样式表设置样式,则可以通过以下方式访问:
var elem;
var elems = $("li");
for(var i=0; i<elems.length; i++) {
if($(elems[i]).css('z-index') == '4') {
elem = elems[i]; //assign elem we found
break; //exit loop early
}
}
var元素;
变量元素=$(“li”);
对于(var i=0;i没有样式选择器(它是如何工作的,样式是继承的和显式声明的规则的组合),但是您可以筛选():
现在,如果您使用z-index
将一段数据附加到HTML元素,您可能会更幸运地使用数据属性(更干净,并且可以通过Sizzle进行搜索)
div
- e1
- e2
- e3
- e4
- e5
警报($('[data id=4]')。文本()
警报($('[data id=8]')。文本()
没有样式选择器(它是如何工作的,样式是继承的和显式声明的规则的组合),但是您可以筛选():
现在,如果您使用z-index
将一段数据附加到HTML元素,您可能会更幸运地使用数据属性(更干净,并且可以通过Sizzle进行搜索)
div
- e1
- e2
- e3
- e4
- e5
警报($('[data id=4]')。文本()
警报($('[data id=8]')。文本()
我建议阅读jQuery选择器文档。$('li[style*=“z-index:4”]”)
(顺便说一句,不要使用=
而是:
来分离css属性和值)。我应该问一下,您是否正在使用z-Index将数据附加到HTML元素。如果是这样,为什么不仅仅是data
属性,这就是它的设计目的:它与选择器一起工作。我建议您阅读jQuery选择器文档。$('li[style*=“z-Index:4”])
(顺便说一句,不要使用=
而是:
来分隔css属性和值)。我应该问一下,如果您使用z-Index将数据附加到HTML元素。如果是这样,为什么不仅仅是data
属性,这就是它的设计目的:它与选择器一起工作。我冒昧地测试了这两个答案的性能,这一个是最快的。比使用.filter()快得多
这仅适用于明确设置的样式属性(如问题中所述)。请参见此处:好的,再次^ ^,在分离文件中使用样式时如何执行?每个函数类似于for循环,但当它返回false时是否像跳过不匹配的元素???我冒昧地测试了这两个答案的性能,这一个是最快的。比使用.filter()快得多
这仅适用于明确设置的样式属性(如问题中所述)。请参见此处:好的,再次^ ^,当在分离的文件中使用样式时如何执行?每个函数类似于for循环,但当它返回false时是否类似于跳过不匹配的元素???属性选择器包括*=
,它基本上测试样式属性是否包含字符串。在本例中,$(“li”)返回所有li
元素,过滤器将遍历每个元素($(此)
表示单个li
s)。如果条件的计算结果为true,则返回false。此解决方案比使用sizzle选择器引擎慢得多。它在其他方面也是不同的解决方案,它考虑通过样式表设置的z索引。在这种情况下,这可能不适用。属性选择器包括*=
,其中ly测试样式属性是否包含字符串。在本例中,$(“li”)返回所有li
元素,过滤器将遍历每个元素($(this)
表示单个li
s)。如果条件的计算结果为true,则会返回false。此解决方案比使用sizzle选择器引擎慢得多。它在其他方面也是不同的解决方案,需要考虑通过样式表设置的z索引。这种情况下可能不适用。
<div data-id='8'>div</div>
<ul>
<li data-id='1'>e1</li>
<li data-id='2'>e2</li>
<li data-id='3'>e3</li>
<li data-id='4'>e4</li>
<li data-id='5'>e5</li>
<ul>
<script>
alert($('[data-id=4]').text())
alert($('[data-id=8]').text())
</script>