現在表示されている「para」クラス内のdivを見つける必要があります。私は試した:
$('.para div[style="display: block;"]').attr("id")
しかし、それは機能しません。
jsfiddleにも例を書きました-> http://jsfiddle.net/JZFgp/3/
ヒントや解決策に感謝します。
マリオ
現在表示されている「para」クラス内のdivを見つける必要があります。私は試した:
$('.para div[style="display: block;"]').attr("id")
しかし、それは機能しません。
jsfiddleにも例を書きました-> http://jsfiddle.net/JZFgp/3/
ヒントや解決策に感謝します。
マリオ
それはうまくいきますが、あなたのマークアップはフィドルでは無効です。修正版は次のとおりです。
<table> <!-- You didn't have a `table` or `tr` element -->
<tr>
<td class="para">
<div id="TripSet" class="rounded-corner-region" style="display: none;">
<div id="DriverSet" class="rounded-corner-region" style="display: none;">
<div id="TimeSet" class="rounded-corner-region" style="display: block;">
<div id="Loading" class="borderless-region" style="display: none;">
</td>
</tr>
</table>
table
and要素がないとtr
、ブラウザーはマークアップを解釈するために最善を尽くし、最終的にはtd
(少なくとも Chrome では) を削除するだけです。つまり、.para
セレクターの一部が一致しなくなります。
編集
tr
要素がある限り、Chrome (おそらく他のものもテストしていません) は、要素を省略しても問題ないようですtable
。要素の周りにtbody
andが自動的に追加されます。tr
td
$('.para div:visible').attr("id")
動作するはずです。
セレクターで style 属性を確実に使用することはできません。属性値を変更しないブラウザもあれば、値を正規化するブラウザもあります。
たとえば、IE8 では、属性値を読み取ると"display: block"
ではなく"display: block;"
が返されますが、セレクターを[style="display: block"]
(または[style="display: block;"]
) と共に使用して要素を見つけることはできません。