IE在这里给我一个错误,FireFox的工作正常:
$("#searched").text("");
searched = $("messages > searched", xml).text();
第一行清空我的< div>。第二行从我的xml结果中获取一个值。该错误特别在第二行。它表示该对象不支持此属性或方法。
谢谢!
答案 0 :(得分:0)
当元素的Id与变量相同时,我在IE中看到了奇怪的错误,如下所示:
var my_id = document.getElementById('my_id');
奇怪?确实如此,但我看到它不止一次发生。
解决方案:重命名变量
答案 1 :(得分:0)
searched = $(xml).find("messages > searched").text();
答案 2 :(得分:0)
消息是您的根节点吗?即你的xml结构如下:
<?xml version="1.0" encoding="utf-8"?>
<messages>
<searched>blah</searched>
<searched>boo</searched>
</messages>
我假设你的xml是一个jquery对象,即
var xml = $("<?xml ...?><messages><searched>...</searched>...</messages>");
var searched = $("messages > searched", xml).text(); //this should assign blahbloo to searched.
在我的实验中,当消息是根节点时,您将无法执行此操作,但如果您更改xml输入并将消息包装在另一个根元素中,则它在FF,Chrome和IE上运行正常。
像这样:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
</head>
<body>
<div class="container">
</div>
</body>
<script type="text/javascript">
$(function() {
var input = "<?xml version=\"1.0\" encoding=\"utf-8\"?><foo><messages><searched>Searched Node 1</searched><searched>Searched Node 2</searched></messages></foo>";
var xml = $(input);
alert($("messages > searched", xml).text());
$("messages > searched", xml).each(function() {
alert($(this).text());
});
});
</script>
</html>
所以,要么将xml包装在另一个根元素中,要么绕过消息,然后执行$(“搜索”,xml)......这应该可以正常工作。