总之,我有一个xml字符串,我使用jQuery来查找特定节点的一些子节点。
这些子项及其值用于构建HTML选择框并将其附加到网页。
XML
<!--- Another node level !-->
<Salutation restricted="no" type="dropdownBox" tooltip="Select a title for the customer" required="yes" size="6">
<value>Mr</value>
<value>Sir</value>
<value>Mrs</value>
<value>Miss</value>
<value>Lord</value>
</Salutation>
守则
function dropdownBuilder( xml, element, id ) {
// find node with specific name and get its children
selection = $("<div>" + xml + "</div>").find(element).children();
console.log( selection );
// generate a select box
var selectBox = "<select id=\"" + id + "\"> ";
for ( var j = 0; j < selection.length; j++ ) {
selectBox += "<option value=\"" + selection[j].innerHTML + "\">"
+ selection[j].innerHTML + "</option>";
}
selectBox += "</select>";
// return html
return selectBox;
}
输出FIREFOX
<select id="dropdownBox1" data-hasqtip="true" aria-describedby="qtip-1">
<option value="Mr">Mr</option>
<option value="Sir">Sir</option>
<option value="Mrs">Mrs</option>
<option value="Miss">Miss</option>
<option value="Lord">Lord</option>
</select>
输出IE
<select id="dropdownBox1" data-hasqtip="true" jQuery16309410884371447445="60"/>
在IE的控制台日志中,它只是说“LOG:[object Object]”
我尝试使用.val(),. value,。data,.attr
更改为输出知道为什么这在FF中工作正常但在IE中没有?
的jsfiddle
由于
答案 0 :(得分:1)
你应该使用xml解析器来完成你的目标
答案 1 :(得分:1)
您可以使用此替换代码中的for循环,它应该可以工作:
selection.each(function(index) {
var text = $(this).text();
selectBox += "<option value=\"" + text + "\">" + text + "</option>";
});