簡體   English   中英

jQuery 搜索匹配字符串並刪除父 div

[英]jQuery search matching string and remove parent div

我下面有一個 HTML:

<div id="keywords">
    <div id="container0">
        <span id="term010"> this</span>
        <span id="term111"> is</span>
        <span id="term212"> a</span>
        <span id="term313"> phrase</span>
    </div>

    <div id="container1">
        <span id="term014"> exact</span>
        <span id="term115"> match</span>
        <span id="term216"> type</span>
    </div>

    <div id="container2">
        <span id="term017"> this</span>
        <span id="term118"> is</span>
        <span id="term219"> a</span>
        <span id="term320"> broad</span>
    </div>
</div>

我想刪除父 DIV(容器),如果子跨度包含一個詞,例如“this”,它就是內容。
該代碼應在所有范圍內搜索單詞“this”並刪除 ID 為“container0”和“container2”的 div。 我已經有了正則表達式,但在那之后我完全迷路了。 我知道我應該使用 querySelector 但我以前從未使用過它並試圖讓它工作,但我失敗了。

/\<span id="term[0-9]{3,}"> this<\/span>/gm

謝謝,

您可以使用:contain()選擇器。

 $(document).ready(function(){ $("#keywords").find("span:contains('this')").each(function(){ if($(this).next("span").html()==" is"){ // Watch out for leading space..; $(this);parent("div");remove(); } }); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="keywords"> <div id="container0"> <span id="term010"> this</span> <span id="term111"> is</span> <span id="term212"> a</span> <span id="term313"> phrase</span> </div> <div id="container1"> <span id="term014"> this</span> <span id="term014"> deserves</span> <span id="term014"> exact</span> <span id="term115"> match</span> <span id="term216"> type</span> </div> <div id="container2"> <span id="term017"> this</span> <span id="term118"> is</span> <span id="term219"> a</span> <span id="term320"> broad</span> </div> </div>

您可以通過執行以下操作來使用 jquery 完成您正在尋找的內容(因為您提到了querySelector ,您應該知道它也可以使用普通的 javascript 來完成 - 請參閱下面的第二個代碼示例)。

JQuery:

 const spans = $('span'); spans.each(function(index, elem) { if (elem.textContent.toLowerCase().indexOf('this') >= 0) { elem.parentNode.remove(); } });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="keywords"> <div id="container0"> <span id="term010"> this</span> <span id="term111"> is</span> <span id="term212"> a</span> <span id="term313"> phrase</span> </div> <div id="container1"> <span id="term014"> exact</span> <span id="term115"> match</span> <span id="term216"> type</span> </div> <div id="container2"> <span id="term017"> this</span> <span id="term118"> is</span> <span id="term219"> a</span> <span id="term320"> broad</span> </div> </div>

僅限 Javascript:

 const spans = document.querySelectorAll('span'); for (const span of spans) { if (span.textContent.toLowerCase().indexOf('this') >= 0) { span.parentNode.remove(); } }
 <div id="keywords"> <div id="container0"> <span id="term010"> this</span> <span id="term111"> is</span> <span id="term212"> a</span> <span id="term313"> phrase</span> </div> <div id="container1"> <span id="term014"> exact</span> <span id="term115"> match</span> <span id="term216"> type</span> </div> <div id="container2"> <span id="term017"> this</span> <span id="term118"> is</span> <span id="term219"> a</span> <span id="term320"> broad</span> </div> </div>

暫無
暫無

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

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