Jquery 对象 innerHTML 在 Firefox 中工作但在 IE 中不工作?
Posted
技术标签:
【中文标题】Jquery 对象 innerHTML 在 Firefox 中工作但在 IE 中不工作?【英文标题】:Jquery object innerHTML working in Firefox but not IE? 【发布时间】:2013-02-16 02:27:32 【问题描述】:总之,我有一个 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;
输出火狐
<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
http://jsfiddle.net/BA7u6/1/
谢谢
【问题讨论】:
试试selection.eq(j).html()
?
不,在 IE 上仍然是同样的问题,在 Firefox 上运行正常
那么selection
为空,$("<div>" + xml + "</div>").find(element).children()
有问题,可能是作为字符串传递给jQuery的xml。
我刚刚做了console.log(xml),它打印出我的xml的有效字符串
你能创建这是一个 jsfiddle 吗?
【参考方案1】:
您可以用这个替换代码中的 for 循环,它应该可以工作:
selection.each(function(index)
var text = $(this).text();
selectBox += "<option value=\"" + text + "\">" + text + "</option>";
);
【讨论】:
你缺少一个结束")" 但它仍然不能在 IE 中工作,但 firefox 是好的【参考方案2】:你应该使用 xml 解析器来做你想做的事
看到这个:http://api.jquery.com/jQuery.parseXML/
【讨论】:
谢谢,但我已经在我的 getXML 函数的早期阶段这样做了,对不起,我应该包括那个以上是关于Jquery 对象 innerHTML 在 Firefox 中工作但在 IE 中不工作?的主要内容,如果未能解决你的问题,请参考以下文章