Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript和正则表达式在html中查找div_Javascript_Html - Fatal编程技术网

使用javascript和正则表达式在html中查找div

使用javascript和正则表达式在html中查找div,javascript,html,Javascript,Html,我尝试使用javascript选择html元素,但不选择!jQuery 例如,我的html是: <div id="my1231"> </div> 但什么都没发生,我做错了什么? 如何使用regex选择div,其中id的第一部分是静态的,第二部分是随机的?如何使用document.querySelectorAll document.querySelectorAll("[id^='my']") 请注意>=IE8支持 如果您真的想使用regex来匹配id,您必须首先获得一个

我尝试使用javascript选择html元素,但不选择!jQuery

例如,我的html是:

<div id="my1231">
</div>
但什么都没发生,我做错了什么?
如何使用regex选择div,其中id的第一部分是静态的,第二部分是随机的?

如何使用
document.querySelectorAll

document.querySelectorAll("[id^='my']")
请注意>=IE8支持


如果您真的想使用regex来匹配id,您必须首先获得一个节点列表,然后循环遍历它并逐个检查每个id。然后,可以将每个匹配元素附加到新数组中:

var divs = document.getElementsByTagName('div');
var regex = /my(.*)/, matches = [];

for(i=0; i< divs.length; i++){
    if(regex.test(divs[i].id)){
        matches.push(divs[i]);  
    }
}
var divs=document.getElementsByTagName('div');
var regex=/my(.*)/,matches=[];
对于(i=0;i

当然,您可以始终混合使用这两种答案,并使用特征检测来确定使用哪种方法:

var divs;
var matches = [];
var re = /^my\w+/;

if (document.querySelectorAll) {
  matches = document.querySelectorAll("[id^='my']");

} else if (document.getElementsByTagName) {
  divs = document.getElementsByTagName('div');

  for(i=0, iLen=divs.length; i<iLen; i++){

    if (re.test(divs[i].id)) {
      matches.push(divs[i]);  
    }
  }
}
var divs;
var匹配=[];
var re=/^my\w+/;
if(document.queryselectoral){
matches=document.querySelectorAll(“[id^='my']”);
}else if(document.getElementsByTagName){
divs=document.getElementsByTagName('div');

对于(i=0,iLen=divs.length;ihm,跨浏览器必须是)您需要只选择ID以my开头的第一个div还是选择以my开头的所有div?这是因为
匹配
包含一个节点数组。
innerHTML
是单个节点的属性。我认为测试最好是
regex.test(divs[i].ID)
。但它选择了什么吗?可能没有…因为如果我像使用数组一样工作-没有选择任何内容@RobG你说得对,谢谢。Valdis,对不起,我不明白?看到我的最后一把小提琴了吗?它必须选择一些内容,但没有选择任何内容我必须选择id为/serv_段落(.*)的div以及它的所有子对象它必须选择id为/serv_段落的div(.*)/它的所有子对象,但它没有这样做…它有,但在该小提琴中没有以“serv_段落”开头的ID的div。但是有一个类以该字符串开头。
var divs;
var matches = [];
var re = /^my\w+/;

if (document.querySelectorAll) {
  matches = document.querySelectorAll("[id^='my']");

} else if (document.getElementsByTagName) {
  divs = document.getElementsByTagName('div');

  for(i=0, iLen=divs.length; i<iLen; i++){

    if (re.test(divs[i].id)) {
      matches.push(divs[i]);  
    }
  }
}