Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 从相同的标记获取innerHTML_Javascript_Html - Fatal编程技术网

Javascript 从相同的标记获取innerHTML

Javascript 从相同的标记获取innerHTML,javascript,html,Javascript,Html,我在获取以下两个strong标记的innerHTML时遇到问题 <div> <strong>data 1</strong> <span class="and">and</span> <strong>data 2 </strong> </div> <div> <strong>data 3</strong> <span

我在获取以下两个
strong
标记的innerHTML时遇到问题

<div>
    <strong>data 1</strong> 
    <span class="and">and</span> 
    <strong>data 2 </strong>
</div>
<div>
    <strong>data 3</strong> 
    <span class="and">and</span> 
    <strong>data 4 </strong>
</div>


querySelector查找第一个结果并停止搜索,而querySelector查找所有结果。

如果您有相同的标记并且需要特定的innerHTML标记,则提供唯一的ID,然后尝试提取,或者如果您想要提取所有
strong
标记innerHTML,则使用
querySelectorAll()

举例来说

 <div>
    <strong>data 1</strong> 
    <span class="and">and</span> 
    <strong>data 2 </strong>
</div>
<div>
    <strong>data 3</strong> 
    <span class="and">and</span> 
    <strong>data 4 </strong>
</div>

var a = document.querySelectorAll("strong");
for (var i = 0; i < a.length; i++) {
  alert(a[i].innerHTML);
}

数据1数据2
数据3数据4
var a=document.queryselectoral(“强”);
对于(变量i=0;i
尝试下面的代码来记录
strong
标记的html:

var elems = document.getElementsByTagName('strong');
for (i=0;i < elems.length;i++{
  console.log(elems[i].innerHTML)
}

总结各部分:

  • document.querySelector(CommaseOperatedStringOfSelectors)
    仅查找满足给定选择器的
    文档中的第一个节点。因此,您需要更具体地使用它,需要为html元素提供一些可查询的选择器,如
    id
    class
  • 但如果您想选择更广泛的,请遵循:

  • document.querySelectorAll(CommaseOperatedStringOfSelector)
    获取满足选择器要求的所有节点的数组。然后,您可以通过索引选择所需的元素

  • 或者您需要使用@Andriy Ivaneyko的答案样式,使用
    getElementByTagName('tagname')
    getElementsByClassName('class')
    ,或
    getElementById('id')


  • 注意:
    document.querySelectorAll(CommaseOperatedStringOfSelectors)
    更通用,它让您有机会更具体或更不具体。您可以在其中使用这样的字符串:
    'strong,div.animals,a'

    好的,我通过执行以下操作完成了我的工作

    var divLength = document.getElementsByTagName("div").length;
    var z = 0;
    for(i=0; i<divLength; i++){
        var dataFromFirstStrong = document.getElementsByTagName("strong")[z].innerHTML;
        z++;
        var dataFromSecondStrong = document.getElementsByTagName("strong")[z].innerHTML;
        z++;
    }
    
    var divLength=document.getElementsByTagName(“div”).length;
    var z=0;
    
    对于(i=0;itry
    queryselectorall()
    这是因为当它找到
    元素时,它会停止寻找其他元素。因此,在这种情况下,您需要
    循环
    继续响应它找到的每个
    元素
    名为
    strong
    ,或者像@debin提到的那样尝试。您需要什么强标记?从第一个div、第二个div还是从两个div开始?@AndriyIvaneykohtml DOM中出现的标记。这只是我提供的一个示例,根据数据库中可用的记录生成随机数目的强标记。我知道您的解决方案,我提供的数据已经从一个div的另一个标记i-e中获取,现在我如何使用另一个文档。getElementsByTagName('strong'))从那里面?我知道你的解决方案,我提供的数据已经从另一个标签i-e从一个div中获取,现在我如何使用另一个文档。querySelectorAll('strong')从那里面?你想要什么?完全相同的标签innerHTML对吗?还有什么是
    document.querySelectorAll('strong')从该
    mean?请查看我在问题中更新的样本数据。请首先尝试回答..通过这样做,您将获得您想要的输出是的,我知道它可以工作,但我不想在每个强标记上循环,我已经在标记上循环了,因此内部循环没有任何帮助不幸的是:(@AndriyIvaneyko我得等两天
    var elems = document.getElementsByTagName('strong');
    for (i=0;i < elems.length;i++{
      console.log(elems[i].innerHTML)
    }
    
    var elems = document.getElementsByTagName('strong')[:1];
    console.log(elems[elems.length-1].innerHTML);
    
    var divLength = document.getElementsByTagName("div").length;
    var z = 0;
    for(i=0; i<divLength; i++){
        var dataFromFirstStrong = document.getElementsByTagName("strong")[z].innerHTML;
        z++;
        var dataFromSecondStrong = document.getElementsByTagName("strong")[z].innerHTML;
        z++;
    }