2

このHTMLを変更できません:

<li data-corners="false" data-shadow="false" data-iconshadow="true" data-rapperels="div" data-icon="arrow-r" data-iconpos="right" data-theme="c" class="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-btn-up-c">
    <div class="ui-btn-inner ui-li">
        <div class="ui-btn-text"> 
            <a class="make-inline ui-link-inherit" href="#"> 
                <h3 class="ui-li-heading"> Attending: 
                </h3> 
            </a> 

            <div class="ui-select">
                <a href="#" role="button" id="undefined-button" aria-haspopup="true" aria-owns="undefined-menu" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="arrow-d" data-iconpos="right" data-theme="c" data-inline="true" data-mini="false" class="ui-btn ui-btn-up-c ui-btn-inline ui-shadow ui-btn-corner-all ui-fullsize ui-btn-icon-right ui-disabled" aria-disabled="true">
                    <span class="ui-btn-inner ui-btn-corner-all">
                        <span class="ui-btn-text"> Maybe </span>
                        <span class="ui-icon ui-icon-arrow-d ui-icon-shadow">&nbsp;</span>
                    </span>
                </a>
                <select class="attending 310 mobile-selectmenu-disabled ui-state-disabled" data-inline="true" data-native-menu="false" tabindex="-1" disabled="disabled" aria-disabled="true">
                    <option value="2"> Yes </option>
                    <option value="0"> No </option>
                    <option value="1"> Maybe </option>
                </select>
            </div>
        </div>


        <span class="ui-icon ui-icon-arrow-r ui-icon-shadow">&nbsp;</span>


    </div>
</li>

selectタグには、この特定のページに固有のclass = "attending"が含まれているため、これを使用してコードのこの部分にアクセスします。最終的に、 class = "ui-icon-arrow-r"を使用して最後のスパンタグにアクセスしようとしているので、スタイルを設定できます。私は次のようにjQueryを使用してみました:

$(".attending").parent().find(".ui-icon-arrow-r").css('background-color','yellow');

動作しません。find()部分を削除すると、ページ上のすべてのli要素が選択されます。だから、私はその部分が機能していることを知っています。しかし、検索の部分はそうではなく、なぜそうなのか理解できません。この要素を選択する方法は?

4

3 に答える 3

5

これを試して:

$(".attending").closest('div.ui-btn-inner').find(".ui-icon-arrow-r").css('background-color','yellow');
于 2012-08-26T20:58:58.250 に答える
2

これが私がそれをする方法です:

  1. クラス(.my-li)をliに追加します(タグベースのセレクターではなく、クラスベースのセレクターが必要なため)

  2. jqueryparentsメソッドを使用します。

    $(".attending").parents('.my-li').find(".ui-icon-arrow-r").css('background-color','yellow')​
    

そして、うん-ここにあなたのケースが解決されました:http://jsfiddle.net/Xfj5U/

アップデート:

申し訳ありませんが、HTMLを変更できないことをめちゃくちゃにしました-私の悪い:(

あなたはまだこのような親の方法を使うことができます(タグセレクターでそしてhtmlを変更しないで):

$(".attending").parents('li').find(".ui-icon-arrow-r").css('background-color','yellow')​

http://jsfiddle.net/ETpVL/

于 2012-08-26T21:04:08.453 に答える
0

次を使用して2回トラバースする必要がありますparent()

$(".attending").parent().parent().find('span:last-child').css( ... )
于 2012-08-26T20:55:46.520 に答える