正则表达式 getElementById [英] Regular expression getElementById
问题描述
很长一段时间以来我第一次需要使用纯 Javascript,并且已经习惯了 jQuery 的舒适床垫,所有重要的东西都在逃避我.
我需要在正则表达式上选择一堆 div.所以我有这样的东西;
.. </div><div id="id_123456_1120092">.. </div><div id="id_555222_1200192">.. </div><div id="id_123456_9882311">.. </div>而且我需要创建一个循环,遍历所有 div,其 ID 以 id_123456_
开头.我该怎么做?
我之前将 jQuery 与 :regex
过滤器插件一起使用,但看看它,我似乎无法在纯 JavaScript 重写中挽救多少.
解决方案 在普通的 javascript 中,你可以执行这个应该适用于所有浏览器的通用搜索:
var divs = document.getElementsByTagName("div"), item;for (var i = 0, len = divs.length; i < len; i++) {项目 = divs[i];if (item.id && item.id.indexOf("id_123456_") == 0) {//item.id 以 id_123456_ 开头}}
工作示例:http://jsfiddle.net/jfriend00/pYSCq/
I need to use pure Javascript for the first time in a long while, and having gotten used to the comfy mattress of jQuery, all the important stuff is escaping me.
I need to select a bunch of divs on regular expression. So I have stuff like this;
<div id="id_123456_7890123"> .. </div>
<div id="id_123456_1120092"> .. </div>
<div id="id_555222_1200192"> .. </div>
<div id="id_123456_9882311"> .. </div>
And I'd need to create a loop that goes through all the divs with an id that begins with id_123456_
. How would I go about doing that?
I used jQuery with the :regex
filter plugin before, but looking at it, it doesn't seem like there's much I could salvage in a pure javascript rewrite.
解决方案 In plain javascript, you could do this generic search which should work in every browser:
var divs = document.getElementsByTagName("div"), item;
for (var i = 0, len = divs.length; i < len; i++) {
item = divs[i];
if (item.id && item.id.indexOf("id_123456_") == 0) {
// item.id starts with id_123456_
}
}
Working example: http://jsfiddle.net/jfriend00/pYSCq/
这篇关于正则表达式 getElementById的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文