2

すべて、私は Jquery の初心者ですが、基本的な使い方で jquery を適用できます。しかし、私はその専門家ではありません。私はこの質問で立ち往生しています.それを確認するのを手伝ってください.ありがとう.

このようなソース html コードがあるとします。

...
    <fieldset class="ui-helper-reset">
    <ul>
        <li>
            <label>Select Layout Template:</label>
            <span class="spanSelectedLayout"></span>
        </li>
        <li>
            <ol class="layoutThumbneil ui-selectable">
                <li class="ui-state-default ui-selectee">
                    <img class="ui-selectee" src="designer/templates/thumbnails/NullTemplate.PNG" alt="">
                </li>
                <li class="ui-state-default ui-selectee ui-selected">
                    <img class="ui-selectee" src="designer/templates/thumbnails/2RowsTemplate.PNG" alt="">
                </li>
                <li class="ui-state-default ui-selectee">
                    <img class="ui-selectee" src="designer/templates/thumbnails/2ColsTemplate.PNG" alt="">
                </li>
            </ol>
        </li>
    </ul>
    </fieldset>
...

現在の要素が のいずれかであり、その要素を選択したい場合、現在の要素liol最初ulに指定された親を意味するとしましょう。基本的には以下のように作れます。

$(".layoutThumbneil li").bind("click",function(){alert($(this).parent().parent().parent().html());})

しかし、このコードは冗長に見えるので、私の質問は、簡単にするために使用する代わりに、私が知らなかった簡単な方法や他のセレクター構文はありparent()ますか? ありがとう。

4

6 に答える 6

2

メソッドを使用できます.closest()

$(".layoutThumbneil li").on("click",function() {
     var html = $(this).closest('ul').html();
});
于 2013-03-18T02:33:05.523 に答える
1

parentsセレクターで使用できますが、要素が重要な場合は要素にid与える必要があります。ul

function() { .. } を変更します

function(){ alert($(this).parents('ul') .. )}
于 2013-03-18T02:33:18.363 に答える
1

これを試すことができます(親の ul 要素が選択されます):

$(".LayoutThumbneil li").bind("click", function() {
    alert($(this).parents("ul").html());
});
于 2013-03-18T02:34:23.930 に答える
1

セレクターには、HTML を指定する必要が.layoutThumbneil liあります。.LayoutThumbneil li

試す:

$(".layoutThumbneil li").bind("click", function () {
    console.log($(this).closest("ul").html());
});

ここでフィドル

于 2013-03-18T02:35:05.323 に答える
1

.parents()jQuery を使用してツリーを上に移動し、jQuery を使用してツリーを下に移動してみてください.find()

$(".layoutThumbneil li").bind("click", function() {
  var parent = $(this).parents('.ui-helper-reset');
  var first_ul = parent.find('> ul');
});
于 2013-03-18T02:35:08.067 に答える
1

このように最も近いものを使用してください..

$(".LayoutThumbneil li").bind("click",function(){
    alert(
        $(this).closest('ol') // this is to check if it has a parent ol
          .closest('ul').html()
    );
})
于 2013-03-18T02:37:28.013 に答える