如何在JavaScript中解析XML并在追加到循环内的按钮时保留nodeValue中的空格?

问题描述 投票:1回答:1

我正在解析xml结果集并将nodeValues附加到按钮。我正在尝试将该按钮的值设置为节点值,并且当nodevalue中没有空格时它会起作用,但是当有空格时它会将其分开。我也将按钮的文本设置为nodevalue,它工作得很好,只有在设置值时,它才会在此处有空格时将nodevalue分开。

我已经尝试将nodeValue设置为循环中的变量并在那里进行格式化,但是如果在设置值时为空格,它仍会将其分开。

var i;
        var xmlDoc = xml.responseXML;
        var li = "";
        var x = xmlDoc.getElementsByTagName("string");
        var valueName;

        for (i = 0; i < x.length; i++) {                
            li += "<li><button id=documentBtn class=btnNav onclick=javascript:hideFunction(value) value=" + "" + x[i].childNodes[0].nodeValue; + "" + ">" +
                x[i].childNodes[0].nodeValue +
                "</button ></li >";                
        }            

这产生了这个:

<button class="btnNav" id="documentBtn" onclick="javascript:hideFunction(value)" value="Site" safety="" specific="" plans="">Site Specific Safety Plans</button>

它应该产生这个:

<button class="btnNav" id="documentBtn" onclick="javascript:hideFunction(value)" value="Site Specific Safety Plans">Site Specific Safety Plans</button>
javascript xml
1个回答
2
投票

代码实际输出的是:

<button class=btnNav id=documentBtn onclick=javascript:hideFunction(value) value=Site Specific Safety Plans>Site Specific Safety Plans</button>

包含空格的HTML属性值必须用引号(''"")包装才能正确处理:

var i;
var xmlDoc = xml.responseXML;
var li = "";
var x = xmlDoc.getElementsByTagName("string");
var valueName;

for (i = 0; i < x.length; i++) {                
    li += "<li><button id=documentBtn class=btnNav onclick=javascript:hideFunction(value) value='" + x[i].childNodes[0].nodeValue + "'>" +
        x[i].childNodes[0].nodeValue +
        "</button></li>";                
}  

上面的代码应该产生:

<button class=btnNav id=documentBtn onclick=javascript:hideFunction(value) value='Site Specific Safety Plans'>Site Specific Safety Plans</button>
© www.soinside.com 2019 - 2024. All rights reserved.