Javascript JQuery Append/Html在IE7/8/8compatmode下不工作,但在FF/Chrome/Opera中工作
想找到这个简直是疯了。任何帮助都将不胜感激 问题是这段代码在IE7/8/8compatmode中“什么都不做”。在Chrome 15.0.8和FF3.5以及Opera 11.60中工作良好 它使用一个xml文件通过ajax读取,然后将其放在表中。我尝试了几件事,在代码之后我会详细介绍 XML:Javascript JQuery Append/Html在IE7/8/8compatmode下不工作,但在FF/Chrome/Opera中工作,javascript,xml,internet-explorer,jquery,Javascript,Xml,Internet Explorer,Jquery,想找到这个简直是疯了。任何帮助都将不胜感激 问题是这段代码在IE7/8/8compatmode中“什么都不做”。在Chrome 15.0.8和FF3.5以及Opera 11.60中工作良好 它使用一个xml文件通过ajax读取,然后将其放在表中。我尝试了几件事,在代码之后我会详细介绍 XML: <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <issues> <issue> <id
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<issues>
<issue>
<id>12</id>
<emp>44</emp>
<author>1</author>
<comments>Example comments go here</comments>
<issueDate>12/5/2011</issueDate>
<modifiedBy />
<modifiedDate />
<modifiedComments />
<pending>true</pending>
<valid>false</valid>
</issue>
</issues>
<script type="text/javascript">
$(document).ready(function () {
grabIssues('2011/12/01', '2011/12/13');
});
function grabIssues(startDate, endDate) {
$.ajax({
type: "POST",
url: "Ajax/mtlIssues.aspx",
data: {
startDate: startDate,
endDate: endDate
},
dataType: ($.browser.msie) ? "text" : "xml",
success: function (result) {
createIssues(result);
}
});
}
function createIssues(xml) {
var data = "";
//newIssueArray = [];
$("issue", xml).each(function (id) {
message = $("issue", xml).get(id);
$id = $("id", message).text();
$emp = $("emp", message).text();
$author = $("author", message).text();
$comments = $("comments", message).text();
$issueDate = $("issueDate", message).text();
$pending = $("pending", message).text();
$valid = $("valid", message).text();
//$("#empList").append("<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>");
//newIssueArray.push("<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>");
data += "<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>";
});
//$("#empList").html("");
//for (i in newIssueArray) {
//$("#empListDetails").append(newIssueArray[i]);
//data += newIssueArray[i];
//}
//$("#empList").append("</table>");
$("#empListDetails").html(data);
}
</script>
12
44
1.
下面是示例注释
12/5/2011
真的
假的
javascript:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<issues>
<issue>
<id>12</id>
<emp>44</emp>
<author>1</author>
<comments>Example comments go here</comments>
<issueDate>12/5/2011</issueDate>
<modifiedBy />
<modifiedDate />
<modifiedComments />
<pending>true</pending>
<valid>false</valid>
</issue>
</issues>
<script type="text/javascript">
$(document).ready(function () {
grabIssues('2011/12/01', '2011/12/13');
});
function grabIssues(startDate, endDate) {
$.ajax({
type: "POST",
url: "Ajax/mtlIssues.aspx",
data: {
startDate: startDate,
endDate: endDate
},
dataType: ($.browser.msie) ? "text" : "xml",
success: function (result) {
createIssues(result);
}
});
}
function createIssues(xml) {
var data = "";
//newIssueArray = [];
$("issue", xml).each(function (id) {
message = $("issue", xml).get(id);
$id = $("id", message).text();
$emp = $("emp", message).text();
$author = $("author", message).text();
$comments = $("comments", message).text();
$issueDate = $("issueDate", message).text();
$pending = $("pending", message).text();
$valid = $("valid", message).text();
//$("#empList").append("<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>");
//newIssueArray.push("<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>");
data += "<tr><td>" + $emp + "</td><td>" + $issueDate + "</td><td>" + $comments + "</td><td>" + $pending + "</td></tr>";
});
//$("#empList").html("");
//for (i in newIssueArray) {
//$("#empListDetails").append(newIssueArray[i]);
//data += newIssueArray[i];
//}
//$("#empList").append("</table>");
$("#empListDetails").html(data);
}
</script>
$(文档).ready(函数(){
主要问题(“2011/12/01”、“2011/12/13”);
});
功能问题(开始日期、结束日期){
$.ajax({
类型:“POST”,
url:“Ajax/mtlIssues.aspx”,
数据:{
开始日期:开始日期,
结束日期:结束日期
},
数据类型:($.browser.msie)?“文本”:“xml”,
成功:功能(结果){
问题(结果);
}
});
}
函数createIssues(xml){
var数据=”;
//newIssueArray=[];
$(“问题”,xml)。每个(函数(id){
message=$(“问题”,xml).get(id);
$id=$(“id”,message).text();
$emp=$(“emp”,message).text();
$author=$(“author”,message).text();
$comments=$(“comments”,message).text();
$issueDate=$(“issueDate”,message).text();
$pending=$(“pending”,message).text();
$valid=$(“valid”,message).text();
//$(“#empList”).append(“+$emp+”+$issueDate+”+“+$comments+”+“+$pending+”);
//newIssueArray.push(“+$emp+”+$issueDate+“+$comments+”+“+$pending+”);
数据+=“”+$emp+“”+$issueDate+“”+$comments+“”+$pending+“”;
});
//$(“#empList”).html(“”);
//对于(我在NewIssuarray){
//$(“#雇员详细信息”)。追加(新发行的array[i]);
//数据+=newIssueArray[i];
//}
//$(“#雇主”)。追加(“”);
$(“#empListDetails”).html(数据);
}
部分html
<div id="empList" class="ui-widget">
<table id='empListTable'>
<thead>
<tr><th>Name</th><th>Date</th><th>Comments</th><th>Pending</th></tr>
</thead>
<tbody id='empListDetails'></tbody>
</table>
</div>
姓名日期支出
我所尝试的:
从中留下的注释代码可以看出,我尝试了从创建数组到使用变量,再到在检测到每个变量时直接将其追加到页面的所有方法
- 我还尝试只创建一个空白div(empList)并创建 并使用.html()插入它。 没用。也没有追加
- 我已经用几种方法编写了这些代码,并且都在FF/Chrome/Opera中工作。但我 甚至不能让IE7/8/8compatmode给我一个错误。只是 什么也没发生
- 我将JQuery从1.4.2升级到1.7.1,并再次尝试所有变体。 希望这可能是Jquery团队发现的bug,而不是我的代码 直接的。没用
- 另外请注意,我从javascript中删除了“修改”部分。信息技术 在那里,但问题在之前/之后一直存在
- 这显示在IE8中的f12/dev控制台上根本没有输入任何内容。 根本没有在里面放任何文字
任何帮助都将不胜感激。千万不要使用DOM遍历方法来迭代xml,因为它是特定于浏览器的,请尝试使用千万不要使用DOM遍历方法来迭代xml,请尝试使用
$。parseXML
@3nigma就是一个答案。把我修好了。