私のスクリプトでは、 DIV
class.se
とstyle
attributeを持つ を探していますdisplay: block
が、 が必要DIV
ですID
。
私の方法は間違っています:(
var usedse = $(".se"):has(css('display', 'block')).attr("id");
これを修正するために私を助けてもらえますか?
...を使用して多くのカスタム ロジックを作成でき.filter()
ます。これにより、すべてが検索され<div class='se'>
、CSSdisplay
プロパティが に設定されていることが確認され、最初に一致した要素の がblock
返されます。id
var usedse = $("div.se").filter(function() {
return $(this).css('display') == 'block';
}).attr("id");
これはおそらくこれを達成するための最良の方法です:)
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 内で設定された要素からスタイル値を取得するには、セレクターを使用してフィルターで除外する必要があります。
これらは別のものであることに注意してください。
だからここに別のフィルターバージョンがあります。
$('div.se').filter(function() {
return ( $(this).css('display') == 'block');
});
いくつかのオプションがあります。
あなたができることの1つは、クラスとcssプロパティが設定されattribute selector
たすべての要素を返すことです:se
display
$(".se [style*='display']").attr('id');
または、.css()
メソッドを使用して、特定の css プロパティの値を実際に確認することもできます。
var $possibles = $(".se"), id;
for ($el in $possibles)
if ($el.css('display') === 'block') id = $el.attr('id');
なぜあなたがこれをしているのか聞いてもいいですか?問題を調べるためのより良い方法が必要だと思います...おそらく、この要素にクラスを配置する必要があります(明らかに、正確な問題によってはこれが不可能な場合があります)?
使用している構文が間違っています。代わりに、次の簡単な方法を試してください。
if ($("div.se").css('display') == 'block') {
var usedse = $(".se").attr('id');
alert(usedse);
}
私はこれをお勧めします:
var usedse = $('.se:visible').attr('id');
if(usedse) alert(usedse);