簡體   English   中英

嵌套列表中的jQuery父母/孩子

[英]jQuery parents/children in nested lists

在jQuery中,parents()和children()的行為與我期望的嵌套列表不同。 一個例子:

<ul>
    <li>item 1
        <ul>
            <li>item a</li>
            <li>item b
                <ul>
                    <li>item i</li>
                </ul>
            </li>          
            <li>item c</li>
        </ul>
    </li>
    <li>item 2</li>
</ul>

和javascript:

$( 'li' ).click(function(event) {
    $( 'ul' ).not( $(this).parents() ).hide();
    $( this ).children().show();
});

如果我單擊“項目b”,則“項目i”將隱藏。 似乎“ item i”是“ item b”的子代,應顯示為$(this).children()。show()

我有語法問題,還是在DOM中誤解了孩子/父母?

有關工作示例,請參見https://jsfiddle.net/8o71yfpf/

您應該使用event.stopPropagation();

當您單擊內部li時,您也單擊了父li。

更新了https://jsfiddle.net/8o71yfpf/2/

它可能有助於了解DOM遍歷http://www.richfinelli.com/understanding-dom-traversal-in-jquery/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM