Javascript 如何隐藏div映射,如果";p";标签是空的

Javascript 如何隐藏div映射,如果";p";标签是空的,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果p-标记包含“我没有映射”,我需要隐藏一个div(.map\u toogle),否则(p-标记为空)我希望看到该div(.map\u toogle) 我有以下代码,但如果p-标记为空,它总是隐藏div $(document).ready(function () { if($(".right_block p:contains('I have no Map')")) { $('.map_icon').hide(); } if($(".right_block

如果
p
-标记包含“我没有映射”,我需要隐藏一个div(
.map\u toogle
),否则(
p
-标记为空)我希望看到该div(
.map\u toogle

我有以下代码,但如果
p
-标记为空,它总是隐藏
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");
    }
});

这样就行了

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

您需要使用.text()获取内容,它将返回文本

  if($('.right_block p').text()==="I have no Map") {
       $('.map_icon').hide();
    } else {
     $('.map_icon').show();
    }
您需要使用.text()获取内容,它将返回文本

为什么不:

$(".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
为什么不:

$(".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检查,但可以通过这种方式减少它并检查长度:

$(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");
   }
});

@丹尼尔:为什么要问这个问题?考虑到问题是用jQuery标记的,并且jQuery在OP的代码段中使用。我想要Jquary,请帮助。Thanks@Daniele94:为什么要问这个问题?考虑到问题是用jQuery标记的,并且jQuery在OP的代码段中使用。我想要Jquary,请帮助。谢谢你详细的回答,但我的命运不起作用。我接受了上面一个很好的答案。再次感谢你的详细回答,但我的命运不起作用。我接受了上面的答案,这个答案很有效。再次表示感谢