检测jQuery未定义

时间:2018-05-05 19:05:20

标签: jquery asp.net-mvc-5

我有这个脚本

 $('a').on('click', function () {
     var vIDString = this.getAttribute('id');
     if (vIDString === undefined) {
         //do nothing
         alert('Hit undefined')
     } else {
         var vID = vIDString.substring(8);
     }
 })

我试过x === undefined,x ===' undefined',typeof x === undefined,typeof x ===' undefined'我能想到的其他事情,并且很乐意跳过那个并抛出“无法获得财产”的子串'未定义或空引用'

知道我做错了吗?

谢谢

1 个答案:

答案 0 :(得分:3)

你永远不会得到未定义。确实,来自MDN

  

getAttribute()返回元素上指定属性的值。如果给定的属性不存在,则返回的值将为null或"" (空字符串);有关详细信息,请参阅注释。

因此,您需要针对null或空字符串进行测试:



<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<a href="url">link text with no ID</a><br/>
<a id="IDVALUE" href="url">link text</a>
&#13;
{{1}}
&#13;
&#13;
&#13;