我有以下代码片段:
$("#QnAList").append("<div id=qdiv" + i + " class=divBase>
<span id='" + i + "'>" + msg.d[i].QuestionText + "</span>
<span id='display'" + i + "'>" + answerDisplay +
"<span class='triage'> </span></div>");
msg.d[i].QuestionText
是我遇到的问题。在FF中它完美地显示文本。在IE7中,唯一显示的是answerDisplay值,它是我正在写的输入元素。
当我取出所有div和span并放入一些<p></p>
时,msg.d[i].QuestionText
会显示answerDisplay值。任何人都可以通过这段代码看到我做错了什么吗?
谢谢!
答案 0 :(得分:3)
这里有一个问题:
<span id='display'" + i + "'>" + answerDisplay +
结果是:
<span id='display'nn'>text</span>
因此额外报价必然会导致问题,应该是:
<span id='display" + i + "'>" + answerDisplay +
还可以考虑在外部<div>
上添加引号,或者将元素构造为DOM节点。
答案 1 :(得分:1)
您忘记关闭某个范围,您的情况下引号无效,依此类推。
这是因为很难跟踪长字符串中发生的事情。
这可能更多,但更清晰,所以你会减少错误:
// create empty spans and divs
var span1 = $("<span>");
var span2 = $("<span>");
var span3 = ${"<span>");
var div = $("<div>");
// Add html and attributes you need
span1.attr("id", i);
span1.html(msg.d[i].QuestionText);
span2.attr("id", "display" + i);
span2.html(answerDisplay)
span3.attr("class", "triage");
div.attr("id", "qdiv" + i);
div.attr("class", "divbase");
// Add everything to the DOM
div.append(span1);
div.append(span2);
div.append(span3);
$("#QnAList").append(div);
我认为使用$("</div>")
实际上更快,但我使用上面的表格来提高可读性。
答案 2 :(得分:0)
对于一个愚蠢的问题的愚蠢回答:)
我这里没有结束的span标记:
...<span id='display'" + i + "'>" + answerDisplay +
"<span class='triage'> </span></div>");
感谢所有看过它的人。
感谢Nick Craver帮助我调试它。