0

私のスクリプトでは、 DIVclass.sestyleattributeを持つ を探していますdisplay: blockが、 が必要DIVですID

私の方法は間違っています:(

var usedse = $(".se"):has(css('display', 'block')).attr("id");

これを修正するために私を助けてもらえますか?

4

5 に答える 5

2

...を使用して多くのカスタム ロジックを作成でき.filter()ます。これにより、すべてが検索され<div class='se'>、CSSdisplayプロパティが に設定されていることが確認され、最初に一致した要素の がblock返されます。id

var usedse = $("div.se").filter(function() { 
   return $(this).css('display') == 'block';
}).attr("id");
于 2010-07-09T08:08:45.830 に答える
1

これはおそらくこれを達成するための最良の方法です:)

id = $(".se[style*='display:block']").attr("id");

ただし、クラスをセレクターとして使用することは、通常、取得しようとしている複数の div 要素があることを意味するため、ここでは倍数について考える必要があります。その場合は、代わりにこの方法を試してください。

$(".se[style*='display:block']").each(function(){
    //Here you can do what you want to each element
    // use `this` as a selector, for example
    id = this.attr('id');
});

補足: css に関しては、セレクターが正しい項目を選択していることを確認する必要があります。たとえば、

style = $('element').attr('style');などの実際の要素からのみ値を返します<div style="display:block"

css 内で設定された要素からスタイル値を取得するには、セレクターを使用してフィルターで除外する必要があります。

http://jsfiddle.net/4jVC8/

これらは別のものであることに注意してください。

だからここに別のフィルターバージョンがあります。

$('div.se').filter(function() {
    return ( $(this).css('display') == 'block');
});
于 2010-07-09T08:04:37.420 に答える
1

いくつかのオプションがあります。

あなたができることの1つは、クラスとcssプロパティが設定されattribute selectorたすべての要素を返すことです:sedisplay

$(".se [style*='display']").attr('id');

または、.css()メソッドを使用して、特定の css プロパティの値を実際に確認することもできます。

var $possibles = $(".se"), id;
for ($el in $possibles)
    if ($el.css('display') === 'block') id = $el.attr('id');

なぜあなたがこれをしているのか聞いてもいいですか?問題を調べるためのより良い方法が必要だと思います...おそらく、この要素にクラスを配置する必要があります(明らかに、正確な問題によってはこれが不可能な場合があります)?

于 2010-07-09T08:09:27.847 に答える
1

使用している構文が間違っています。代わりに、次の簡単な方法を試してください。

if ($("div.se").css('display') == 'block') {
   var usedse = $(".se").attr('id');
   alert(usedse);
}
于 2010-07-09T07:59:02.363 に答える
1

私はこれをお勧めします:

var usedse = $('.se:visible').attr('id');
    if(usedse) alert(usedse);
于 2010-07-09T08:02:04.220 に答える