在Jquery中,我如何只选择元素的第一个父元素

时间:2015-01-13 17:35:30

标签: jquery html

我有这个结构:

<input placeholder="Filter by name" id="filterBox" type="text" />
<ul class="navList">
    <li><a>1</a></li>
    <li><a>2</a></li>
    <li><a>3</a></li>
    <li><a>4</a></li>

<ul>

我想只选择第一位父母 例如,当我点击<li><a>3</a></li>

时,请选择此<a>3</a>

我尝试了.parent().closest('li'),但它一直在选择我的所有列表。

$('#filterBox').keyup(function(){
    var valThis = $(this).val().toLowerCase();
    $('.navList>li>a').each(function(){
        var text = $(this).text().toLowerCase();
        (text.indexOf(valThis) == 0) ? $(this).parent().show() : $(this).parent().hide();            
    });
});

解决问题后,这是正常工作的JSFiddle,谢谢:http://jsfiddle.net/ybugdb57/

4 个答案:

答案 0 :(得分:0)

让其直接使用父母

$('#element').parent();

答案 1 :(得分:0)

click事件处理程序中,您可以编写如下内容:

$('a').click(function(e){
    var myParent = $(this).parent();
    /* ... other code ... */
});

查看this jsfiddle

中的示例

答案 2 :(得分:0)

它是$(selector).parent();就是这样。问题是,您在上下文中没有正确使用它 - 这意味着您不知道如何定位被点击的元素 - 这是选择器。它可能应该是谎言:

$(document).on('click','a',function(e){
   $(this).parent();
});

答案 3 :(得分:0)

这两项工作

$('a').click(function(e){
    console.log($(this).parent());
});

$('a').click(function(e){
    console.log($(this).closest('li'));
});