我有一种输入文本,必须在'keydown'上触发一个功能。为了识别这种类型的输入,我使用了Id #autocomplete。所以
$('#autocomplete').keydown(function(){
//function autocomplete
});
问题是我在同一页面中输入了两次,因此jquery会搜索第一个id,而忽略第二个id。 (我使用的是旧的jquery版本,1.3)。
我使用 $(“输入#automplete”)来解决它。它有效,但它是最佳做法吗?我想Ids必须是独一无二的。我可以使用 class 或 name ,但两者都会对代码的其他部分产生影响( class 到设计, name 到服务器部分接收表单参数)。
哪种解决方案最好?
答案 0 :(得分:2)
id
document
确实应该是整个class
unique。如果您确实无法使其成为唯一,则可以选择其他方式,或者向input
添加$(.class)
,然后将其选为{{1}}。
id属性为元素分配唯一标识符(可以 由SGML解析器验证。)
答案 1 :(得分:2)
如果您对class
或name
对design
和server
的影响有疑问,则可以随时使用属性。
<input data-id="my-id"/>
然后选择它
$("[data-id=my-id]")
具有data-
前缀的自定义属性是HTML5中的标准。