簡體   English   中英

如何選擇所有列表項,但列表項沒有嵌套子項 <ul> 要么 <ol>

[英]How to select all list items but list items don't have nested child of <ul> or <ol>

我想在“ .favdelParentFold ”的子項中選擇所有列表項,但要確保列表項沒有<ul>任何嵌套子項。 如果列表項中有任何嵌套子級“ <ul> ”,我不想觸發它。

HTML

<li class="favdelParentFold">
    <a href=""><span class="caret-right"></span></a>
    <span class="folder"></span><span>fold2</span><span class="trashcan">press me</span>

    <ul>
        <li><a href="">One 1</a><span class="trashcan">press me</span></li>
        <li><a href="">Two 2</a><span class="trashcan">press me</span></li>
        <li><a href="">Three 3</a><span class="trashcan">press me</span></li>
        <li>
            <a href="">Four 4</a><span class="trashcan">press me</span>
            <ul>
                <li>four 1.1</li>
                <li>four 1.2</li>
            </ul>
        </li>
    </ul>
</li>

JS檔案:

$(document).ready(function () {
    $(".favdelParentFold ~ ul li.trashcan").click(function () {
        var tr = $(this).prev('span').text();
        var pa = $(this).closet().text();
        alert(tr);
        alert(pa);
    });
});

EX:

如果單擊1、2、2、3、3,我可以得到此值和父值,但是四個4的子級為<ul>我想避免觸發。

預期輸出:

如果單擊“一個1”,我需要得到一個1和fold2

如果單擊“一個2”,我需要得到一個2和fold2

如果單擊“一個3”,我需要得到一個3和fold2

但是我們不會觸發“四個4”

我認為您正在尋找類似的東西。

 $(".favdelParentFold ul li .ecm-trashcan").click(function() { var tr = $(this).prev().text(); var ma = $(this).closest('.favdelSubFold').find('#sfDel').text(); var pa = $(this).closest('.favdelParentFold').find('#pfDel').text(); alert(tr); if(tr!=ma) alert(ma); alert(pa); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <li class="favdelParentFold"> <a href=""><span class="caret-right"></span></a> <span class="folder"></span><span>fold2</span><span class="trashcan">press me</span> <ul> <li><a href="">One 1</a><span class="trashcan">press me</span></li> <li><a href="">Two 2</a><span class="trashcan">press me</span></li> <li><a href="">Three 3</a><span class="trashcan">press me</span></li> <li> <a href="">Four 4</a><span class="trashcan">press me</span> <ul> <li>four 1.1</li> <li>four 1.2</li> </ul> </li> </ul> </li> 

更新:根據小提琴html, js將如下所示:

$(".favdelParentFold ul li .ecm-trashcan").click(function () {
    if ($(this).parent().find('ul').length || $(this).closest('.favdelSubFold').length) return;

    var tr = $(this).prev('a').text();
    var pa = $(this).closest('.favdelParentFold').find('#pfDel').text();
    alert(tr);
    alert(pa);
});

暫無
暫無

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

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