如何使用jQuery选择’user:name’或’city:id’等特殊属性?
<div user:name="Ropstah"></div>
<span city:id="4"></div>
使用Javascript
//this works:
alert($('div').attr("user:name")); // alerts 'Ropstah'
//this doesn't work:
alert($('div[user:name]').attr("user:name")); //error
alert($('div[user\\:name]').attr("user:name")); //error even with special character escaping...
解决方法:
您有两种选择:
>摆脱:并使用“非标准”属性(老实说,这不是什么大不了的事)
>获取更详细,或使用插件来获取功能:
最初,您可能必须这样做:
$('div').filter(function() {
return $(this).attr('user:name') !== undefined;
}).whateverElse();
速度方面,这应该与jQuery的[]选择器非常接近,因为它正是它在库内所做的事情.当然,每次要查找具有属性的元素时都要输入更多内容,因此您可以为它编写一个插件,因为jQuery非常棒并允许您执行此类操作:
$.fn.hasattr = function(attr) {
return this.filter(function() {
return $(this).attr(attr) !== undefined;
});
};
这会让你做得更简单:
$('div').hasattr('user:name').whateverElse();
$.fn.cmpattr = function(attr, value) {
return this.filter(function() {
return $(this).attr(attr) == value;
});
};
然后你可以这样做:
$('div').cmpattr('user:name', 'Ropstah').whateverElse();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。