2014-07-22 29 views
1

奇怪的是,有些人喜歡創建<a>標籤沒有hrefs,這是跳過我的項目的一部分。這是我到目前爲止:如何檢測沒有href的鏈接標記?

 iframe.find("a").not("a[href*='#'], a[href*='%'], a[href*='javascript:;']").bind("click", function() { 

      NProgress.start(); 

      $("button.active .tab-title").html(currentTitle); 
      $("button.active .tab-favicon").attr("src", getFavicon); 

      var _location = $(this)[0].href; 
      $("iframe.active").attr("src", _location); 

      console.log("Hmm, " + _location); 

     }); 

我有一個進度條,顯示點擊鏈接的加載。當然,如果沒有href/source,它會窒息。如何檢測沒有源的<a>?將a添加到.not部分不起作用,因爲那時我的加載欄將不起作用。

+0

爲什麼你想要一個加載欄,當你還沒有加載任何東西?我不知道爲什麼你不會將這些鏈接排除在選擇器之外。 – Brad

+0

加載欄僅在點擊時激活。 –

回答

1

什麼這樣的事情?

if ($(this).attr("href").length == 0) { 
     alert("no href for this link"); 
     return false; 
    } 

,或者如果你只想目標鏈路與href

if ($(this).attr("href").length > 0) { } 
+0

您的答案的第一部分適用於我。我在上面的代碼中有其他條件,因爲儘管他們有源代碼,但他們不會去任何地方。 –

0

使用jQuery和檢查,如果屬性爲空:

if ($(this).attr('href') != '') { // if no href } 
0

你可以檢查this.href。如果屬性爲空或不存在,它將是一個空字符串。

0
var hrefattr = $(this).attr("href"); 
if(hrefattr != ' '){ 
    //your code here 
} 

只有href獲得標籤的值並存儲在一個變量中,如果它不是空的,那意味着你已經得到了帶有href屬性的標籤。

+0

Hiya,這可能很好的解決了這個問題......但是如果你能夠提供一些關於它是如何工作和爲什麼工作的解釋的話,那將是一件好事:)不要忘記 - 堆棧溢出中有許多新手,他們可以從你的專業知識中學到一兩件事 - 對你來說顯而易見的事情對他們來說可能並非如此。 –

+0

採取你的意見,我確信我解釋我提供的答案:)謝謝 – Sweetz