2013-10-24 49 views
0

在我的標記中,我的A元素的href等於"": <a href="">。當嘗試使用類似alert(jQuery('#my_href_link').attr('href'))的方式顯示它時,它會返回「undefined」而不是空鏈或某物。如何檢查href屬性是否爲空

所以解決方案,我發現到處都是:

if (jQuery('#my_href_link').attr('href') == '') 

if (jQuery('#my_href_link').attr('href').length == 0) 

...不工作。

然而,他們似乎爲除我以外的每個人工作。這是爲什麼?

標記:

<a id="my_href_link" href=""> 
    <img src="image.jpg"> 
</a> 
+1

在HTML中的href存在嗎?顯示你的html .. – nrsharma

+0

是的,它確實存在,我添加了我在Firebug中看到的標記,以我的問題。 – drake035

回答

6

以Javascript的變量truthy和falsey自然優勢。在這個if語句中,一個空字符串或undefined將導致條件評估爲false。

if (jQuery('#my_href_link').attr('href')) 

你可以輕易地否定使用!因爲以下== true,但此聲明:

alert(!undefined); 
alert(!""); 

Read more about truthy and falsey

+0

好的,我想作出相反的陳述。我可以用「!」來寫同樣的東西嗎?在「jQuery」之前?我只是試過,它似乎破壞我的代碼執行。 – drake035

+0

'!'應該可以工作。如何破壞你的代碼執行,你能提供一個例子嗎? –

+0

我的頁面的JS代碼非常複雜,所以在某處必定存在一些複雜的衝突。我會處理這個問題,無論如何。 – drake035