开发过程中遇到需要判断一个页面元素是否存在,即一个select标签是否存在。
如果存在,还要判断他的值是否有效,即非指定的几个值,我的源代码如下:
if($("#quoPoolDealers") && (!$("#quoPoolDealers").val() || $("#quoPoolDealers").val() == "0:请选择")){
console.log("存在,且值无效");
}
运行后发现不正确,原因是 $("#quoPoolDealers") 返回了一个Object,导致了第一步判断失效。
改良后:
if($("#quoPoolDealers").length > 0 && (!$("#quoPoolDealers").val() || $("#quoPoolDealers").val() == "0:请选择")){
console.log("存在,且值无效");
}
这样就可以了,jq选择器返回的object是一个默认的对象,并没有有效的值,所以用length属性就可以达到判断元素是否存在的目的