0

この人を見てください:

<div id="Item_23">
 <div class="Info">
   <a class="Link" href="#" onclick="call(23)">Link</a>
   <div class="text">
     <a class="cancel" href="cancel.asp">Cancel</a>
   </div>
 </div>
</div>

親divには動的IDがあり、その数字部分は可変です。
さて、もちろん関数内でクラスごとにこの子の1つを選択したいと思います。どうすればいいですか?

function call(e)
    // Selecting a.cancel
end function
4

2 に答える 2

0

おそらく次のようなもの

$('div[id^=Item_] div.text');

また

$('div[id^=Item_] a.Link');

あなたの編集に応じて

これを試して

function call(e) {

    // Find the inner anchor
    var theAnchor = $('div[id=Item_' + e + '] div.text').find('a.cancel');
}

呼び出しまたはjQueryコードのいずれかにアンダースコアがないため、IDを持つdivを探しています

Item23

IDではなく

Item_23

これは、他のリンクがクリックされたときにキャンセルリンクを取得する方法を示すJSFiddleです。

http://jsfiddle.net/PyDKg/14/

@undefinedが示唆しているように、jQueryを使用しているので、インラインjavascript呼び出しは必要ありません。関数を少し変更したので、親のIDを取得し、ID全体をパラメーターとして送信します。

HTML

<div id="Item_23">
    <div class="Info">
        <a class="Link" href="#">Link</a>
        <div class="text">
            <a class="cancel" href="cancel.asp" data-val="Yay got it!">Cancel</a>
        </div>
    </div>
</div>

JS

$(document).ready(function(){
    $('a.Link').click(function(){
        var id = $(this).parents('div[id^=Item_]').attr('id');
        callAnchor(id);
    });
});

function callAnchor(e) {

    // Find the inner anchor
    var theAnchor = $('div[id=' + e + '] div.Info div.text').find('a.cancel');

    // Print the data-val attribute to prove that it was found.
    alert($(theAnchor).attr('data-val'));
}
于 2012-08-17T00:52:57.300 に答える
-1

まず、元のセレクターを次のように修正します。

 var item = $('div[id=Item_' + e + '] div');

childrenとを含む子要素を選択する方法はたくさんありますがnext、これは最も単純で、マークアップの変更で破損する可能性が最も低いです。

item.find('.Link');
于 2012-08-17T00:51:38.673 に答える