2012-12-18 39 views
1

我正在尋找一種優雅的方式來添加數據到服務器端的元素,以便jQuery/JavaScript可以使用它。我也不想打太多的電話到服務器,所以數據必須在那裏提前。添加數據元素,使jQuery可以使用它

場景示例。 服務器端(PHP),我創建了一個用戶圖像列表。爲此,我想添加姓名,年齡等。
點擊圖片時,jQuery必須對這些數據做些什麼。

我考慮過的可能性:
將數據作爲href,然後點擊獲取href並返回false。
將數據作爲類使用。

有沒有更好的方法?

+1

您可以簡單地隱藏數據,當頁面第一次提供,然後使用jQuery來切換其可見性?不需要額外的服務器呼叫。你還應該發佈一些代碼,使你的問題更清晰。 – nonshatter

回答

6

爲了這個目的,HTML規範保留了以data-開頭的屬性。例如:

<p data-name="John Doe" data-age="256">Hello World</p> 

只要您遵循data-*格式,您可以隨心所欲地命名它們。

如果您需要結構化語義數據,請考慮使用RDFa Lite以及適當的模式。

+1

謝謝(以及其他發佈答案的人)。簡單的事情就像你在生活中想念的一樣。 :) –

0

您可以創建data屬性:

<a href="link.html" data-content="demo">Text</a> 

然後用閱讀:

$('a').data('content'); 
+0

爲什麼使用attr當你可以使用數據(「內容」) – mplungjan

+0

是啊真的:)好點。 – Alvaro

1

對於HTML5,你有custom data attributes

如果您希望獲得舊版規格的有效HTML,最好的選擇可能是將數據嵌入<span>元素中,樣式爲display:none,並且位於將它們與圖像相關聯的位置,並且易於通過jQuery訪問例如作爲具有特定類別的子元素)。

+0

+1我在寫這個:) – Sithu

0

如果你有很多的數據元素,可以通過存儲在JavaScript變量中的數據保持他們的標記,並且只使用一個data-useridid屬性來存儲一個ID號到用戶數據。

例如,如果你有一個用戶的一個PHP數組,你可以json_encode它變成一個JavaScript變量:

var users = <?php echo json_encode($users); ?>; 

在您的標記,只存儲ID:

<img src="..." alt="..." data-userid="x" /> 

然後,您可以查找您的Javascript數組中的數據。這種方法的好處是,如果你需要存儲大量數據,那麼標記就不顯眼了。

相關問題