javascript – 如何选择特殊属性(前缀:name =“”)?

如何使用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...

解决方法:

This is a bug in jQuery.

您有两种选择:

>摆脱:并使用“非标准”属性(老实说,这不是什么大不了的事)
>获取更详细,或使用插件获取功能

最初,您可能必须这样做:

$('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();

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...