1

可能重复:
我可以通过 Javascript 获取非标准 CSS 属性的值吗?

如何使用 jquery 检索具有虚构或非标准 CSS 属性的所有元素?例如,如果属性是“emotion”并且它的值是“happy”,我如何遍历 dom 并检索具有该属性的元素,如果需要,它的值?

HTML...

<div class="book">
</div>

CSS..

.book {
emotion:happy;
}

Javascript/jquery 查询通过它具有情感属性来查找书籍。

???

谢谢!

4

5 回答 5

4

无效或未知的 CSS 属性(不是属性)将被浏览器忽略,并且无法访问它们,因为它们没有添加到 DOM。

于 2012-07-18T01:09:18.607 回答
1

您想在此处使用数据属性:

<div class="book" data-emotion="happy"></div>

并使用 jQuery 作为:

$('.book[data-emotion="happy"]');
于 2012-07-18T01:10:12.050 回答
1

您可以在 DOM 中获取具有任意属性的元素:

​&lt;div emotion="happy">:)</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[emotion="happy"]').text()​​​​​​​​​​​​​​​​​​​​​);​
// prints ":)"

...但最好这样做:

​&lt;div data-emotion="happy">:)</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[data-emotion="happy"]').text()​​​​​​​​​​​​​​​​​​​​​);​
// prints ":)"

因为data-在 HTML5 中推荐使用用户定义的属性

它也不会被解析为 CSS 规则,你为什么要这样?

于 2012-07-18T01:12:39.750 回答
1

尽管我认为您可以/不应该基于 css 属性搜索元素:

休息我希望它有助于事业:)

请试试这个:

var x = $('div').filter(function(){ return this.style.some_prop == 'whatever' });
                                                        ^------- ------ ^

注意:如果您想搜索属性,请参见此处

$(parentElement).find('*[someAttributeName]').each(function(index){
    doSomething(this);
});
于 2012-07-18T01:12:45.287 回答
1

有人亲自向我提到的解决方法是使用 CSS 解析器,例如: http: //glazman.org/JSCSSP/index.html

于 2012-07-18T18:33:53.457 回答