2013-04-17 52 views
0

我有一個從調用PHP腳本的HTML構建動態的HTML代碼jQuery的功能是使用jQuery是不識別定製錨標記屬性

$('ul.special-list').append("<li><a href='#' class=restaurantItem restaurant= '" + item.estName + "' adddress='" + item.estAddr + "'><img src= " + item.img_link + 
      " width='60' height='60' alt='" + item.estName + "'><div class='img-det'><strong class='title'> " + item.title + " </strong><p> " + item.desc_short + 
      " <br>Expires: " + item.expiry_date + " </p><em class='price'>" + item.price + "</em></div></a><a href='dealDetail.html?id=" + item.id + 
      "' class='det-link'>Detail</a>"); 

然後我有一個名叫上doument功能輸出。準備好的函數被正確調用,但自定義錨標記 - 餐廳的值不會顯示警報。

$('ul.special-list').on('click', 'a.restaurantItem', function (event) { 

    event.preventDefault(); 
    alert($(this).attr('address')); 
} 

即使當我檢查Chrome中的元素時,警報顯示爲undefined,但標記上的元素餐廳有一個值。

任何幫助將是偉大的,即時通訊相當新的jquery,所以任何幫助,將不勝感激。

非常感謝

+1

你的類名應該是在引號附加公正它 – Rooster

+0

一眼哪裏abouts是這樣嗎? – user1907509

回答

1

那麼,它基本上是因爲在你的HTML字符串屬性名稱是地址經過和您試圖訪問屬性地址
更改adddress='" + item.estAddr + "'address='" + item.estAddr + "'

還考慮增加報價類:class="restaurantItem"

+0

我很愚蠢,我一直在看這幾個小時,它的東西很傻,我很生氣!那麼,編程爲你,我想。感謝您向我展示我的錯誤。 – user1907509

1

類屬性可能會影響它像John B中提及的,因爲類接受多個,空間分隔值。類屬性之後的空間可能會讓我們看起來像是已經完成了聲明類,但Chrome似乎將標記的其餘部分解釋爲更多的類。

可能是jQuery沒有正確處理這些屬性,因爲它們都不是標準的。通常,非標準屬性應該寫爲data-address=''而不僅僅是address=''。一旦切換到該格式,您可以使用attr('data-address')訪問data-address屬性,或者在data('address')的較新jQuery版本中訪問data-address屬性。