2011-10-04 40 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会收到当您提交数据

名称是非常重要的阵列服务器端