简体   繁体   English

从html获取节点/子节点

[英]Getting nodes/child nodes from html

The first thing I do is I echo some html code: 我要做的第一件事是回显一些html代码:

echo "<div>
        <file>somefile</file>
        <file>another file</file>
      </div>";

Then I through JavaScript find all instances of file: 然后,我通过JavaScript查找文件的所有实例:

var file = document.getElementsByTagName("file");

Then I am able to get values from each file by: 然后,我可以通过以下方式从每个文件中获取值:

file[index].childNodes[0].nodeValue

Now I want to add another level to the <file> like this: 现在,我想像这样向<file>添加另一个级别:

echo "<div>
        <file>
          <em1>element1</em1>
          <em2>element2</em2>
        </file>
      </div>";

How can I get those em values? 如何获得这些em值? I want to do something like: 我想做类似的事情:

file[index].getValueFromEm1...

Try 尝试

file[index].childNodes[0].nodeValue
file[index].childNodes[1].nodeValue

etc... 等等...

try this 尝试这个

PHP 的PHP

<?php
echo "<div>
        <file>
          <em1>element1</em1>
          <em2>element2</em2>
        </file>

       <file>
        <em1>element3</em1>
        <em2>element4</em2>
      </file>
      </div>";
?>

JS JS

<script>
var file = document.getElementsByTagName("file");
for(var i=0; i<file.length; i++)
{
    var filenodes = file[i].childNodes;
    for(var j=0; j<filenodes.length; j++)
    {
        var element_text = filenodes[j].innerHTML;
        if(typeof element_text!= 'undefined')
        {
            alert(element_text);
        }   
    }
}
</script>

you can still access the content of the ems like you did with the original content. 您仍然可以像使用原始内容一样访问ems的内容。

var files= document.getElementsByTagName("file");
files[0].childNodes[0].textContent
files[0].childNodes[1].textContent

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM