0

現在表示されている「para」クラス内のdivを見つける必要があります。私は試した:

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

しかし、それは機能しません。

jsfiddleにも例を書きました-> http://jsfiddle.net/JZFgp/3/

ヒントや解決策に感謝します。

マリオ

4

3 に答える 3

5

それはうまくいきますが、あなたのマークアップはフィドルでは無効です。修正版は次のとおりです。

<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>​

tableand要素がないとtr、ブラウザーはマークアップを解釈するために最善を尽くし、最終的にはtd(少なくとも Chrome では) を削除するだけです。つまり、.paraセレクターの一部が一致しなくなります。


編集

tr要素がある限り、Chrome (おそらく他のものもテストしていません) は、要素を省略しても問題ないようですtable。要素の周りにtbodyandが自動的に追加されます。trtd

于 2012-10-23T09:32:55.953 に答える
1

$('.para div:visible').attr("id")動作するはずです。

于 2012-10-23T09:31:01.753 に答える
0

セレクターで style 属性を確実に使用することはできません。属性値を変更しないブラウザもあれば、値を正規化するブラウザもあります。

たとえば、IE8 では、属性値を読み取ると"display: block"ではなく"display: block;"が返されますが、セレクターを[style="display: block"](または[style="display: block;"]) と共に使用して要素を見つけることはできません。

于 2012-10-23T09:47:04.543 に答える