41

このコードは良いですか?

var wlocation = $(this).closest('.myclass').find('li a').attr('href');
if (wlocation.prop !== undefined) { window.location = wlocation; }

または私はするべきですか

var wlocation = $(this).closest('.myclass').find('li a').attr('href');
if (wlocation.prop !== "undefined") { window.location = wlocation; }
4

3 に答える 3

98

私はこれが好き:

if (wlocation !== undefined)

しかし、2番目の方法を好む場合は、投稿したとおりではありません。それはそのようになります:

if (typeof wlocation  !== "undefined")
于 2012-11-28T14:47:25.280 に答える
13

私は一般的に省略版が好きです:

if (!!wlocation) { window.location = wlocation; }
于 2012-11-28T14:48:41.540 に答える
4

$.fn.attr(attributeName)は、属性値を文字列として返すかundefined、属性が存在しない場合に返します。

""undefinedはどちらもJavaScriptでは偽の (ブール値に強制すると false に評価される) 値であるため、この場合、次のようにチェックを記述します。

if (wlocation) { ... }
于 2012-11-28T14:45:05.023 に答える