javascript - JQuery .attr 在 Chrome 中不起作用

标签 javascript jquery regex attr setattribute

我正在使用 :regex 库(找到 here )来选择 ID 以 P 开头且后面至少有 5 位数字的元素。然后,我使用 .attr 添加一些属性。

$(document).ready(function() {
$('img:regex(id,P[0-9][0-9][0-9][0-9]+)').attr("onmouseover", "show\(this\,2\,0\)");
$('img:regex(id,P[0-9][0-9][0-9][0-9]+)').attr("onmouseout", "hide\(this\)");
});

这适用于 Firefox,但不适用于 Chrome。 (尚未测试 IE。)

我尝试使用 [0].setAttribute 代替,它在一定程度上有效,但由于某种原因它只选择正则表达式的第一个实例。

有人有更兼容的解决方案吗?

最佳答案

无论该插件做什么,它看起来都非常慢。我宁愿建议选择所有图像节点,然后使用 jQuery .filter()help 过滤它们,这必须更快,而且我认为它仍然更具可读性。可能看起来像:

$('img').filter(function(index) {
    return this.id.charAt(0) === 'P' && !isNaN(this.id.slice(1,6));
}).hover(function() {
     $(this).show();
}, function() {
     $(this).hide();
});

演示:http://www.jsfiddle.net/snMCM/

性能基准:http://jsperf.com/regex-vs-jquery-filter

关于javascript - JQuery .attr 在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4926706/

相关文章:

javascript - 当显示 10 个以上系列时,Highcharts 列会变薄

javascript - iOS Phonegap 使用手势滑动检测

javascript - 将 .addClass 移动到未选择的元素时,jQuery Slider 行为异常

javascript - css bootstrap slider 菜单修复

javascript - 提取url参数后去掉空格

javascript - 正则表达式以嵌套可排序形式更新表单输入多个索引

javascript - 为什么javascript在页面底部或有时从页面顶部运行

javascript - 将参数声明到函数范围

javascript - 创建类来处理元素的点击和其他事件

javascript - 查找一个数组中比另一个数组中的元素大的元素