如何使用 jquery 检索具有虚构或非标准 CSS 属性的所有元素?例如,如果属性是“emotion”并且它的值是“happy”,我如何遍历 dom 并检索具有该属性的元素,如果需要,它的值?
HTML...
<div class="book">
</div>
CSS..
.book {
emotion:happy;
}
Javascript/jquery 查询通过它具有情感属性来查找书籍。
???
谢谢!
如何使用 jquery 检索具有虚构或非标准 CSS 属性的所有元素?例如,如果属性是“emotion”并且它的值是“happy”,我如何遍历 dom 并检索具有该属性的元素,如果需要,它的值?
HTML...
<div class="book">
</div>
CSS..
.book {
emotion:happy;
}
Javascript/jquery 查询通过它具有情感属性来查找书籍。
???
谢谢!
无效或未知的 CSS 属性(不是属性)将被浏览器忽略,并且无法访问它们,因为它们没有添加到 DOM。
您想在此处使用数据属性:
<div class="book" data-emotion="happy"></div>
并使用 jQuery 作为:
$('.book[data-emotion="happy"]');
您可以在 DOM 中获取具有任意属性的元素:
<div emotion="happy">:)</div>
...
console.log($('div[emotion="happy"]').text());
// prints ":)"
...但最好这样做:
<div data-emotion="happy">:)</div>
...
console.log($('div[data-emotion="happy"]').text());
// prints ":)"
它也不会被解析为 CSS 规则,你为什么要这样?
尽管我认为您可以/不应该基于 css 属性搜索元素:
休息我希望它有助于事业:)
请试试这个:
var x = $('div').filter(function(){ return this.style.some_prop == 'whatever' });
^------- ------ ^
注意:如果您想搜索属性,请参见此处
$(parentElement).find('*[someAttributeName]').each(function(index){
doSomething(this);
});
有人亲自向我提到的解决方法是使用 CSS 解析器,例如: http: //glazman.org/JSCSSP/index.html