簡體   English   中英

選擇DOM javascript中的最后一個元素

[英]select last element in DOM javascript

我是這個國家的新手,我將獲取此xml文檔的最后一個孩子,但無法獲取它,有人可以解釋為什么我的代碼對我來說似乎正確,但不知道為什么它沒有得到lastchild的消息,所以這是什么其他可能的方法,我只想從此味精中獲取talk 123

xml文件

<msg category="short">
    <person1>
        <time>
             r
            <message>Djssjs</message>
        </time>
    </person1>
    <person2>
        <time>
            r
            <message>1234fdg</message>
        </time>
    </person2>
    <person1>
        <time>
            r
            <message> talk 123</message>
        </time>
    </person1>
</msg>

JavaScript的

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("msg")[0].lastChild;
    var m = x.childNodes[2];
    document.getElementById("demo").innerHTML = m.innerHTML;
}

我不知道這里的xml類型是什么...我假設一個包含字符串的對象。

如果我是正確的,則需要使用DOMParser進行解析。

然后,我們得到(按順序):

  1. <msg>標記,
  2. lastElementChild ,這里是<person1>
  3. 最后是<message>標記的innerHTML。

 var xml = { responseXML: '<msg category="short"> <person1> <time> r <message>Djssjs</message> </time> </person1> <person2> <time> r <message>1234fdg</message> </time> </person2> <person1> <time> r <message> talk 123</message> </time> </person1> </msg>' }; function myFunction(xml) { // Get the response from the object. var xmlDoc = xml.responseXML; //console.log(xmlDoc); // Parse the string to HTML var parser = new DOMParser(); var xmlParsed = parser.parseFromString(xmlDoc, "application/xml"); //console.log(xmlParsed); // Get the <msg> tage var msgTag = xmlParsed.getElementsByTagName("msg")[0]; //console.log(msgTag.tagName); // Get the last child, <person1> var personLast = msgTag.lastElementChild; //console.log(personLast); // Get the <msg> innerHTML var msgLast = personLast.getElementsByTagName("message")[0].innerHTML; //console.log(msgLast); // Display in document document.getElementById("demo").innerHTML = msgLast; } myFunction(xml); 
 #demo{ border:1px solid black; height:6em; } 
 <div id="demo">Function result should be here.</div> 

在此CodePen中未注釋控制台日志

正如評論中指出的那樣,這里可能存在多個問題。 不確定XML文檔,但javascript會將nextline字符視為最后一個子元素。 因此,最后一個孩子將是文字。 您可以通過在控制台上登錄x進行測試,這應該根據此處的xml修復當前功能。

function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName("msg")[0].childNodes[childNodes.length-2];
var m = x.childNodes[1].childnodes[1];
document.getElementById("demo").innerHTML = m.innerHTML;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM