属性名称不能被引用。用途:
我有一些类似的代码
$("html").on("change", "input['data-href']", function() {
var href, obj, params;
obj = $(this);
href = obj.attr('data-href');
params = {};
params[obj.attr('data-param')] = obj.val();
return $.post(href, params);
});
目的是我可以在任何地方使用表单元素,并使它们自动通过ajax将它们的值提交到指定的URL。然而,这无关紧要解决问题。问题是代码正在检测更改事件在任何输入元素上,而不仅仅是具有匹配选择器的元素输入['data-href']
上的$().是否存在一些我没有解决的微妙问题?
$("html").on("change", "input[data-href]", function() {
当属性包含特殊字符时,可以使用双斜杠对其进行转义:
$("element[namespace\:attribute]")
属性的name
不在引号内(双引号或单引号),value
在引号内。如果只检查属性的存在,则需要[data-href]
而不是['data-href']
。
您可以简单地使用$(".data\-href").change(function(){}).