我正在解析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>
代码实际输出的是:
<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>