JQuery .attr 在 Chrome 中不起作用
我正在使用 :regex 库(位于此处)来选择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 代替,它在一定程度上有效,但由于某种原因它只选择正则表达式的第一个实例。
有人有更兼容的解决方案吗?
I'm using a :regex library (found here) to select elements that have IDs starting with P and having at least 5 digits afterward. Then, I use .attr to add on some attributes.
$(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\)");
});
This works in Firefox, but not Chrome. (Haven't tested IE yet.)
I tried using [0].setAttribute instead, and it works to an extent, but then for some reason it only selects the first instance of the regex.
Does anyone have a more compatible solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
无论该插件做什么,它看起来都非常慢。我宁愿建议选择所有图像节点,然后使用 jQuery
.filter()
过滤它们help,这必须更快,而且我认为它仍然更具可读性。可能看起来像:演示:http://www.jsfiddle.net/snMCM/< /a>
性能基准:http://jsperf.com/regex- vs-jquery-filter
Whatever that plugin does, it looks terribly slow. I would rather recommend to select all image nodes and then filter them with jQuery
.filter()
help, this has to be faster and I think it's still more readable at all. Could look like:Demo: http://www.jsfiddle.net/snMCM/
Performance benchmark: http://jsperf.com/regex-vs-jquery-filter
除了 regEx 之外,您应该使用 jQuery
.hover()
函数,而不是.attr()
函数。我合并了.hover()
函数以及kirilloid
提供的正则表达式regEx aside, you should use the jQuery
.hover()
function, not the.attr()
function. I've incorporate the.hover()
function as well as the regEx provided bykirilloid
我不确定您是否可以使用 attr 附加 javascript 处理程序,但这听起来像是一个很长的方法。
试一试:
I'm not sure you can attach javascript handlers using attr, but that sounds like a very long way of doing it.
Give this a shot:
我知道它并不能真正回答您的问题,但是...
向您要选择的元素添加一个类。
I know it doesn't really answer your question but...
Add a class to the elements you want to select.
试试这个:(在所有浏览器中工作)
而不是
Try This: (Working in all browsers)
Rather than
为什么不直接使用
filter()
而不是:regex
库呢?这应该适用于所有浏览器。例如Why not just use
filter()
instead of the:regex
library? This should work in all browsers. e.g.