Javascript 值=”时的getAttribute(';值';)&引用;
我使用的是Y.one(选择器).getAttribute('value');要返回页面上的值,我在处理value=“”的情况时遇到问题 通过所有这些检查,当我查看的元素的值为“”时,我得到一个空的警报框。在这种情况下,由于我知道我要查找的值是一个数字,我可以将检查更改为只查找一个大于0的数字并使其工作,但我想知道是否有人知道在我没有处理数字数据的情况下检查无值的方法Javascript 值=”时的getAttribute(';值';)&引用;,javascript,yui,Javascript,Yui,我使用的是Y.one(选择器).getAttribute('value');要返回页面上的值,我在处理value=“”的情况时遇到问题 通过所有这些检查,当我查看的元素的值为“”时,我得到一个空的警报框。在这种情况下,由于我知道我要查找的值是一个数字,我可以将检查更改为只查找一个大于0的数字并使其工作,但我想知道是否有人知道在我没有处理数字数据的情况下检查无值的方法 if (check_value >0) { alert(check_value); } 这个方法在我的例子中确实有
if (check_value >0) {
alert(check_value);
}
这个方法在我的例子中确实有效。如果它是一个空字符串,那么它不是未定义的,也不是空的。由于您检查它是否不是未定义的或非空或非空字符串,因此它将通过
使用
&&
而不是|
用简单的英语查看逻辑检查值!=未定义| |检查|值!=空| |检查_值!=“
如果它是未定义的或空的,或者”
,如果它是空的,则它不是未定义的,如果它是空的,则它不是空的,所以一切都通过了;您要查找的是逻辑的和
,而不是或
试试这个:
var check_value = Y.one(selector).getAttribute('value');
if (check_value != undefined && check_value != null && check_value != "") {
alert(check_value);
}
您之所以看到此警报,是因为您的
if
语句包含或(|
)子句。如果value
属性是空字符串,则最后一个条件(check\u value!=“
)应该失败。但是,由于“
不等于undefined
第一个条件已经返回true,因此if
语句测试通过(因为它不需要评估其他条件),并且执行if
块
我怀疑你真的想用和(&&
)来代替。你为什么不检查一下“真实性”呢
if (check_value) {
alert(check_value);
}
我想这基本上和你(打算)的支票一样。如果您需要检查0
(一个数字),只需使用以下命令:
if (check_value || check_value === 0) {
...
}
你可以看看Y.Lang.isValue()
这对我来说很有用,并给出了我需要的结果,不过在我的例子中,我需要真正的值,所以将使用if(check_value){alert(check_value);}@JoeW当然。)更新了我的答案——现在我想知道为什么我真的想否定那张支票。)你可能一直在想!!检查|u值
,这将强制它为布尔值,而不是确定它的真实性。真实性最好由程序组成Min wordAs已经指出,第一次检查总是会产生不好的结果,因为对相同的值进行了| |(或)检查,我应该使用$$(和)进行测试。
if (check_value || check_value === 0) {
...
}