javascript – 使用正则表达式搜索div类

前端之家收集整理的这篇文章主要介绍了javascript – 使用正则表达式搜索div类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

听起来很简单,呵呵.我发现很多答案,但都使用jQuery或ProtoType.我想要简单的JavaScript.它不应该那么难,但JavaScript不是我的事;没有中央文件意味着寻找年龄而不是找到我想要的东西.

请考虑以下HTML代码段:

现在我想使用JavaScript来处理那些DIV.

  1. function processDivElements()
  2. {
  3. // search for relevant DIV classes
  4. var divArray = document.getElementsByClass.regex('/^central_.*$/');
  5. // do stuff with the DIV elements found
  6. foreach (divArray as divElement)
  7. {
  8. divElement.style.background = '#f00';
  9. };
  10. }

任何人都可以帮我翻译成适当的纯JavaScript吗?我使用的是类,而不是ID.我更喜欢使用正则表达式.

最佳答案
jQuery解决方案真的很棒:

  1. var $divs = $('div[class^="central_"]');

如果您只想支持更新的浏览器,可以使用document.querySelectorAll()基本上做同样的事情:

  1. var divs = document.querySelectorAll('div[class^="central_"]');

如果你想支持旧的浏览器,代码会变得很糟糕:

  1. var all_divs = document.getElementsByTagName('div');
  2. var divs = [];
  3. for (var i = 0; i < all_divs.length; i++) {
  4. var div = all_divs[i];
  5. if (div.className.match(/^central_\d+$/) {
  6. divs.push(div);
  7. }
  8. }

也:

I use classes,not IDs. I prefer using a regular expression.

您的类是唯一的,并且实际上像ID一样运行,这实际上不是类的预期用途.改为构建你的HTML:

现在,JavaScript变得更简单:

  1. var $divs = $('.central'); // jQuery
  2. var divs = document.querySelectorAll('.central'); // Newer browsers
  3. var divs = document.getElementsByClassName('central'); // Older browsers

猜你在找的HTML相关文章