jquery 判断一个 id 选择器存不存在难道不是用$("#div").length>0 吗

2015-04-07 20:55:53 +08:00
 tanteng

今天一个ajax请求发生错误,原因是一个参数没有得到值,比如
var three_id = $("#three_id").val();

firefox下显示这一行typeof $() null,页面上也没有id为three_id的选择器,于是报错了。

我用
if($("#three_id").length>0){
var three_id = $("#three_id").val();
}
这样进行了判断,如果有这个id选择器就执行这一句,结果页面上没有这个id还是执行这一句,于是报错了。

当页面上存在这个id选择器的时候,就是正常的,这个#three_id 是动态生成的。

后来我不得不这样做才解决问题:
try{
var three_id = $("#three_id").val();
}catch(e){

}

WHY?

7022 次点击
所在节点    jQuery
23 条回复
NCE
2015-04-08 08:51:38 +08:00
jq 版本问题吧lz,以前$('').length是可以的
iyaozhen
2015-04-08 13:46:45 +08:00
楼主能否说一下 jquery 的版本。这样 if($("#three_id").length>0) 应该是没错的。
IamJ
2015-04-09 20:28:18 +08:00
一直用
if ($('#abc')[0])

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/182195

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX