Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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中的具体元素_Javascript_Html_Dom - Fatal编程技术网

如何用javascript获取HTML中的具体元素

如何用javascript获取HTML中的具体元素,javascript,html,dom,Javascript,Html,Dom,我有这个: <div class="graph"> <rect y="2%" class="rect"></rect> <text>1</text> <rect y="15%" class="rect"></rect> <text>2</text> <rect y="11%" class="rect"></rect> <text>

我有这个:

<div class="graph">
  <rect y="2%" class="rect"></rect>
  <text>1</text>
  <rect y="15%" class="rect"></rect>
  <text>2</text>
  <rect y="11%" class="rect"></rect>
  <text>3</text>
</div>

我想在第一次迭代中得到第一个“rect”HTML标记和第一个“text”HTML标记;在第二次迭代中是第二次,在第三次迭代中是第三次。

您可以通过querySelectorAll获得您的rect,这比getElementsByClassName更受支持

  • 标记
    文档。查询选择全部(“rect”)
  • class
    document.queryselectoral(“.rect”)
并与普通for循环相结合,因为forEach不适用于节点列表-

var标签=[“一”、“二”、“三”];
window.onload=function(){
var rects=document.querySelectorAll(“rect”);
/*  
forEach(函数(rect,index){//失败
appendChild(document.createTextNode(labels[index]);
});
*/  

对于(var i=0;i,您可以通过querySelectorAll获取您的rect,这比getElementsByClassName更受支持

  • 标记
    文档。查询选择全部(“rect”)
  • class
    document.queryselectoral(“.rect”)
并与普通for循环相结合,因为forEach不适用于节点列表-

var标签=[“一”、“二”、“三”];
window.onload=function(){
var rects=document.querySelectorAll(“rect”);
/*  
forEach(函数(rect,index){//失败
appendChild(document.createTextNode(labels[index]);
});
*/  

对于(var i=0;i我也建议在这里使用jQuery。具体地说。

我也建议在这里使用jQuery。具体地说。

您可以按类名获取所有rect,然后相对地以文本元素为目标:

var rects = document.getElementsByClassName('rect');
var curRect, curIndex;
for(var i=0; i<rects.length; i++){

    curRect = rects[i];
    curIndex = curRect.nextSibling.innerHTML;

    switch(curIndex){
        case "0":
            //do something
            break;
        case "1":
            //do something
            break;
        case "2":
            //do something
            break;
        default:
            //default behavior
    }
}
var rects=document.getElementsByClassName('rect');
var curRect,curIndex;
对于(var i=0;i,您可以按类名获取所有rect,然后相对地以文本元素为目标:

var rects = document.getElementsByClassName('rect');
var curRect, curIndex;
for(var i=0; i<rects.length; i++){

    curRect = rects[i];
    curIndex = curRect.nextSibling.innerHTML;

    switch(curIndex){
        case "0":
            //do something
            break;
        case "1":
            //do something
            break;
        case "2":
            //do something
            break;
        default:
            //default behavior
    }
}
var rects=document.getElementsByClassName('rect');
var curRect,curIndex;

对于(var i=0;iHi),您可以在html页面中尝试以下代码:


1.
2.
3.

变量标签=[“一”、“二”、“三”];
labels.forEach(函数(标签、索引){
如果(索引==0){
document.getElementById(“一”).innerHTML=“测试写入”;
//获取第一个rect和text标记
}else if(索引==1){
//获取第二个rect和text标记
}否则{
//获取第三个rect和text标记
}
})

将Javascript代码放在HTML之后。

您好,您可以在HTML页面中尝试以下代码:

<div class="graph">

</div>
<script>
var string = "";
var labels = ["one", "two", "three"];
     labels.forEach(function (label, index) {
        if (index == 0) {
           // get first rect and text tag
           string = string + '<rect y="2%" class="rect"></rect>'+
                    '<text>1</text>';
        } else if (index == 1) {
           string = string + '<rect y="15%" class="rect"></rect>'+
                    '<text>2</text>';
        } else {
           string = string + '<rect y="11%" class="rect"></rect>'+
                    '<text>3</text>';
        }

    });
$(".graph").append(string);
</script>

1.
2.
3.

变量标签=[“一”、“二”、“三”];
labels.forEach(函数(标签、索引){
如果(索引==0){
document.getElementById(“一”).innerHTML=“测试写入”;
//获取第一个rect和text标记
}else if(索引==1){
//获取第二个rect和text标记
}否则{
//获取第三个rect和text标记
}
})
将Javascript代码放在HTML之后。


<div class="graph">

</div>
<script>
var string = "";
var labels = ["one", "two", "three"];
     labels.forEach(function (label, index) {
        if (index == 0) {
           // get first rect and text tag
           string = string + '<rect y="2%" class="rect"></rect>'+
                    '<text>1</text>';
        } else if (index == 1) {
           string = string + '<rect y="15%" class="rect"></rect>'+
                    '<text>2</text>';
        } else {
           string = string + '<rect y="11%" class="rect"></rect>'+
                    '<text>3</text>';
        }

    });
$(".graph").append(string);
</script>
var字符串=”; 变量标签=[“一”、“二”、“三”]; labels.forEach(函数(标签、索引){ 如果(索引==0){ //获取第一个rect和text标记 字符串=字符串+“”+ '1'; }else if(索引==1){ 字符串=字符串+“”+ '2'; }否则{ 字符串=字符串+“”+ '3'; } }); $(“.graph”).append(字符串);

var字符串=”;
变量标签=[“一”、“二”、“三”];
labels.forEach(函数(标签、索引){
如果(索引==0){
//获取第一个rect和text标记
字符串=字符串+“”+
'1';
}else if(索引==1){
字符串=字符串+“”+
'2';
}否则{
字符串=字符串+“”+
'3';
}
});
$(“.graph”).append(字符串);

您可以按类获取所有rect

var elements = document.getElementsByClassName("rect");
您可以像以前一样进行迭代,并使用索引进行匹配

var labels = ["one", "two", "three"];
var elements = document.getElementsByClassName("rect");

labels.forEach(function (label, index) {
    alert(label + ": " +  elements[index].getAttribute("y"));
});

您可以在以下位置看到它:

您可以按类获取所有rect

var elements = document.getElementsByClassName("rect");
您可以像以前一样进行迭代,并使用索引进行匹配

var labels = ["one", "two", "three"];
var elements = document.getElementsByClassName("rect");

labels.forEach(function (label, index) {
    alert(label + ": " +  elements[index].getAttribute("y"));
});

您可以在以下位置看到它:

是否尝试过document.getElementsByTagName(“rect”)[index]?是否尝试过document.getElementsByTagName(“rect”)[index]?谢谢!!我会试试的!谢谢!!我会试试的!在这个上面添加一些文字会很有帮助,所以你可以解释你做了什么。在这个上面添加一些文字会很有帮助,所以你可以解释你做了什么。