jquery - 我应该检查一个对象是否存在?

时间:2014-04-25 10:35:22

标签: jquery html exists

我有一些代码可以更新div的html。这个div只在一页上,js是站点范围。

$('#mydiv').html('<p>hello</p>');

我应该检查div是否存在或者只是让它尝试并且找不到div?

3 个答案:

答案 0 :(得分:2)

实际上有两件事发生在那里。首先是这个......

$('#mydiv')

找到与选择器匹配的所有元素,并将它们作为jQuery对象数组返回。那你有这个......

.html('<p>hello</p>');

这只会针对上一个数组中的jQuery对象运行。

简而言之,该行包含检查该元素是否存在,因此您不必这样做。


请注意,这只是因为它们是jQuery函数,jQuery对开发人员很好。如果你要做这样的事情那么它可能会失败......

$('#mydiv').text().replace("a", "b");

那是因为text()返回一个字符串,如果没有字符串,replace会失败,因为它会undefined。一旦你将jQuery函数分解为vanilla Javascript,你就会(通常)开始思考是否存在事物。

答案 1 :(得分:1)

我认为最好的答案是&#34;依赖&#34;。使用id #mydiv的div输出你操作失败,所以html不会被设置。

如果您有兴趣向用户展示某些内容,则操作失败,无法达到结果。

更简单的方法是通过将它们直接放入html来确保您需要操作的元素的存在。

另一种方法是通过jQuery控件确保元素存在,即:

if($("#mydiv").length==0) 
   $("body").append("#mydiv");
$('#mydiv').html('<p>hello</p>');

当然,你必须知道插入它的位置,以及该元素的绝对父级。顺便说一句,正如我所说的,如果可能的话,将div直接放到html会更容易。

答案 2 :(得分:-1)

最佳做法是对该类控件进行验证。所以我的建议是使用代码

HTML

<div id="mydiv"></div>

<input type="button" id="chk" value="button"/>

<强> JQUERY

$('#chk').click(function() {

    var len=$('#mydiv').length;
    if(len>0)
    {
        $('#mydiv').html('<p>hello</p>');
    }

});