2011-10-04 43 views
1

今天我們可以編寫包含許多用戶控件,jquery插件和大量html元素的巨大網頁。
有時會有一個jquery插件創建一個div併爲其分配Id。當多次使用這種插件時 - 兩個元素具有相同ID的情況。巨大網頁中的名稱或ID

使用「名稱」比使用「ID」更好嗎?

+0

我想在jQuery中使用name屬性的速度太慢了,因爲它依賴於DOM搜索。身份證是更快,但在你的情況....我不知道 –

回答

3

通過設計爲DOM元素生成相同ID的插件不值得使用 - 它顯示編程不佳。良好的插件將始終使用唯一的ID,例如添加一些索引。
所以,只是不要使用這樣的插件。

名稱與Web表單以外的元素無關 - 例如<div>不應該有name,此屬性僅對錶單元素有意義,在這種情況下是,更好地使用它,因爲您可以給同一個名稱更多比一個元素。

0

我相信使用類的jQuery元素有助於避免很多問題。

如果控件運行在服務器端,並且因此在HTML中呈現不同,則使用名稱(特別是與ASP.NET一起使用)可能會導致問題。

+0

所以你建議使用類使用名稱?但這不是班級屬性的目的。爲什麼班級更好,那麼在你看來名字? – Naor

+0

當使用jQuery時,使用類引用控件很常見。我發現這是最好的,因爲你可以引用包括父類,以確保只有正確的元素被引用。 E.g'$(「。container .left_column .widget」)。plugin();' – Curt

1

在頁面上不應該有兩個具有相同ID的元素。例如,當您使用jQuery的ID選擇這樣

$('#id') 

它總是返回只有一個元素,無論使用相同的ID元素的數量。如果您必須克隆元素,請動態使用具有類或gerate ID的元素。如果兩個元素具有相同的名稱只有最新的將被張貼,除非您使用PHP的支持塔排列標記:在這種情況下

<input type='checkbox' name='ids[]' value='3'> 
<input type='checkbox' name='ids[]' value='6'> 

PHP會收到當您提交數據

名稱是非常重要的陣列服務器端