我使用jQuery扫描页面,查找页面上的所有链接,以及是否有"标题"属性,在控制台日志中输出它们。
$("a").each(function () {
var title = $(this).attr('title');
if (title !== 'undefined') {
console.log(title + 'blah');
}
})
我无法理解的是它输出" undefined"很多时候,尽管我指定它不应该使用这个值记录任何东西:
if(title !== 'undefined'){
console.log(title+'blah');
}
以下是console.log结果的示例:
undefinedblah
About WordPressblah
undefinedblah
comments awaiting moderationblah
Newblah
undefinedblah
My Accountblah
undefinedblah
为什么所有这些undefined
选项都会通过我的if
声明?
答案 0 :(得分:1)
只需使用
if(title){
console.log(title+'blah');
}
检查真实价值。值为undefined
而不是'undefined'
title
在null
,undefined
,0
,""
和false
下< falsy p>
旁注,为什么不使用属性选择器;如果没有a
title
s
$("a[title]").each(function () {
var title = $(this).attr('title');
console.log(title + 'blah');
})
答案 1 :(得分:0)
如果要显式检查类型是否未定义,请使用typeof
。目前你正在检查变量的类型是&#34; string&#34;它的价值是&#34;未定义&#34;。
if(typeof title !== "undefined") {
// Code
}
答案 2 :(得分:0)
而不是使用"undefined"
使用undefined
。
$(document).ready(function () {
$("div a").each(function () {
var value = $(this).prop("title");
console.log(value);
if (value !== undefined) console.log("title: "+value);
});
});
有关详细信息,请查看此Link。