如何使用Jquery安全地检查属性值?

loy*_*low -3 javascript jquery

如果单击的链接将target ="_ blank"设置为属性,我想调用window.open,否则我设置iframe来加载页面.

如何检查attr并确保它在值为null时不会崩溃等.

到目前为止我有这个:

if ($(that).attr("target") == "_blank") {
       window.open(linkHref, "_blank");
}
else {
       document.getElementById(someFrame).src = linkHref;
}
Run Code Online (Sandbox Code Playgroud)

我很害怕如果$(that).attr("target")没有设置,或者是空的,它会崩溃.

Bri*_*ins 5

从JQuery文档:

访问第一个匹配元素的属性.此方法可以轻松地从第一个匹配的元素中检索属性值.如果元素没有具有此类名称的属性,则返回undefined.属性包括title,alt,src,href,width,style等.

它不会爆炸,但如果属性丢失则返回undefined.因此,期望返回未定义的潜力,并相应地进行调整.

更糟糕的是,您总是可以在try/catch中包含易失性代码来规避错误.

  • @ user1361315你如何定义"崩溃"这个词?如果`$(那)`没有"target"属性,它的值将是'undefined`.当你将`undefined`与``_blank``进行比较时,它的结果是`false`.应该没有崩溃. (2认同)