如果div存在,Javascript显示html

标签 javascript jquery getelementbyid

我试图在我的页面上显示一个包含导航栏的表格(或 ul),但只显示包含 html 上存在的名为 div 的 jquery 的选项卡。

本质上,它是一个包含所有 div 的单个 html 文档,jquery 隐藏除第一个之外的所有 div,并且导航栏将允许浏览每个 div。 现在我试图让它易于我的客户使用,以便菜单项仅在其 div 也存在时才存在。我已经完成了大部分工作,唯一的事情就是实际知道 div 是否存在。

我尝试使用这个:

if(document.getElementById("page1")) {
document.write("<b>Good morning</b>");}
else 
{
document.write("<b>Bad morning </b>");
}

当我将上述代码放入 div page1 中时,它返回 true。有没有办法从页面顶部而不是在 div 内执行此操作?

谢谢!

更新:

根据许多人的建议,我使用了以下内容:

$j(document).ready(function(){
    //Hide the sections we don't need right away
    $j("#page2").hide();
    $j("#page3").hide();
    $j("#page4").hide();
    if ($j('#page1').length > 0) {
var page = 'Excellent Morning'   ;
}
});

然后当我尝试使用时:

document.write(page);

它显示以下内容: [对象 HTMLBodyElement]

最佳答案

既然你已经使用了 jQuery,为什么不使用它呢?

if ($('#page1').length > 0) {
    // do stuff...
}

编辑:正如 davin 指出的那样,您的代码应该在 DOM 渲染之后进行评估。您可以通过将其放入 $(document).ready 调用中来完成此操作:

$(document.ready(function() {
    if ($('#page1').length > 0) {
        // do stuff...
    }
});

编辑 2:根据 OP 的编辑,更好的解决方案是添加占位符元素并设置其内容(如 FishBasketGordo 建议的那样)。一个例子:

$(document.ready(function() {
    //Hide the sections we don't need right away
    $("#page2, #page3, #page4").hide();
    if ($('#page1').length) {
        $('#myPlaceHolder').html('<b>Good Morning</b>');
    }
    else
    {
        $('#myPlaceHolder').html('<b>Bad Morning</b>');
    }
});

文档中的其他地方...

<span id="myPlaceHolder"></span>

关于如果div存在,Javascript显示html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7666842/

相关文章:

javascript - 在 AJAX 调用上具有固定标题的 HTML 表格

javascript - jQuery 表单插件的 beforeSubmit 调用的函数没有返回值

jquery - 使用 jquery.noConflict()

javascript - jQuery/JavaScript : My recursive setTimeout function speeds up when tab becomes inactive

javascript ElementById 说明

javascript - 获取元素的父div

javascript - 具有 ID 的 DOM 树元素是否成为全局属性?

javascript - 对于移动屏幕,如何从上到下移动一个 div?

javascript - 页面刷新后淡入 div

javascript - 如何在jquery中获取具有唯一编号的div的ID?