1

重複の可能性:
Javascriptを介して非標準のCSSプロパティの値をフェッチできますか?

jqueryを使用して、作成されたCSS属性または非標準の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プロパティに基づいて要素を検索することができる/すべきではないと思いますが:

残り私はそれが原因に役立つことを願っています:)

plzはこれを試してください:

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 に答える