簡體   English   中英

如果“ p”標簽為空,如何隱藏div貼圖

[英]How to hide a div map if “p” tag is empty

如果p標簽包含“我沒有地圖”,則需要隱藏div( .map_toogle ),否則( p標簽是空的),我想顯示該div( .map_toogle )。

我有以下代碼,但是如果p -tag為空,它將始終隱藏該div

$(document).ready(function () {
    if($(".right_block p:contains('I have no Map')")) {
        $('.map_icon').hide();
    }
    if($(".right_block p:contains('I have no Map')")) {
        $('.map_toogle').hide();
    }
    if($(".right_block p:contains('I have no Map')")) {
        $('#camera_wrap_2').show();
    }
    if($('.right_block > p').is(':empty')) {
        $('.map_toogle').css("display", "block");
    }
    if($('.right_block > p').is(':empty')) {
        $('.map_toogle').css("display", "block");
    }
});

為什么不:

$(".right_block p").text()!== 'I have no Map' ? $(".map_toggle").show() : $(".map_toggle").hide();

這是一個簡單的if / else語句,用於測試p的文本是否顯式匹配字符串“ I have no Map”,並顯示/隱藏map div。

就是說,您可能希望將其擴展為常規的全脂聲明,因為您似乎還在執行其他一些操作:

if($(".right_block p").text()!== 'I have no Map'){
    $(".map_toggle").show();
    // other actions...
}else{
    $(".map_toggle").hide();
    // other actions...
}

然而..

通常,最好以盡可能適應的方式進行編碼,如果更改指示沒有地圖的文本該怎么辦? 因此,最好測試一下反函數 (只要您知道這根本不是文本),然后使用:

if($(".right_block p").text()){ // ....no text present

您可以通過多次if檢查來減少這種情況並檢查長度:

$(document).ready(function () {
   if($(".right_block p:contains('I have no Map')").length !== 0) {
      $('.map_icon, .map_toogle').hide();
      $('#camera_wrap_2').show();
   }
   if($('.right_block > p').text().trim() === '') {
      $('.map_toogle').css("display", "block");
   }
});

這將解決問題

  if($('.right_block p').text()==="I have no Map") {
       $('.map_icon').hide();
    } else {
     $('.map_icon').show();
    }

您需要使用.text()獲取內容,這將為您返回文本

如何訪問`<div> `標簽內的`<p> `標簽? </p></div><div id="text_translate"><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 當我單擊“世界”文本時,什么也沒有發生,當我檢查元素時,它說:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;標簽。 怎么會這樣?</p></div>

[英]How to access a `<div>` tag inside a `<p>` tag?

暫無
暫無

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

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