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,其数字部分是可变的。
现在,我想在一个函数中按课程选择这个孩子中的一个。怎么办?

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

而不是身份证

Item_23

这是一个 JSFiddle,它演示了在单击另一个链接时获取取消链接。

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

正如@undefined 所建议的,您不需要内联javascript 调用,因为您使用的是jQuery。我稍微改变了函数,所以它只获取父 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');

有很多方法可以选择子元素,包括childrennext,但是这是最简单的方法,并且最不可能因标记更改而中断:

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