目前我用它来检查标签(元素)是否已经存在:
if(!$('#'+element).length){
//... code to add new tab if not exists.
} else {
Alert("Tab or portlet already exists...");
}
这非常脏,我从FireBug得到一个“未捕获的异常:语法错误,无法识别的表达式:#”。如果元素已经存在,则“警报”不会显示,我认为它会在第一个例外处挂起。
有没有更好的方法来检查元素是否存在? (或标签)
我将此用于个人项目@ http://www.soliman.nl/test/jqueryui/ui_2.php
答案 0 :(得分:1)
问题似乎在你的源代码中 - 你传递“#foo”作为参数元素,然后加上另一个“#”。结果是$("##foo")
,这是行不通的。
答案 1 :(得分:0)
请检查元素
的值如果这是null或空,则您的语句变为
if(!$('#').length){
or
if(!$('#null').length){
可能会出现一些错误
这是工作版
<html>
<body>
<p id="test"></p>
</body>
</html>
var element = "test"; //if you try to comment this line or change value , it will give error
if(!$('#'+element).length){
alert("do something");
} else {
alert("Tab or portlet already exists...");
}
<强>演示强> http://jsfiddle.net/J3MdK/