我的问题如下,我使用jquery来获取div内容,但.find()返回null。
我们可以在这里查看源代码:http://webdevs-bg.net/web/html5pload/js.html并打开控制台以查看find()中的日志。
答案 0 :(得分:2)
您的回复是返回整个HTML文档。不要那样做。您将无法遍历它,因为在将整个文档放入jQuery对象时,不同浏览器的行为会有所不同。
临时修复可能是使用filter()
[docs]方法而不是.find()
。
我猜你在浏览器上进行了测试,除了<body>
的内容之外,除了"#content"
的内容之外,其他所有内容都被删除,.find()
元素不在#content
找到它。
请注意,这不适用于所有浏览器,这就是为什么您只需要返回实际需要的内容。
此外,您将$.get(History.getState().url, {
text: "123"
},
function (response) { // v--filter will work in some browsers, but not all
var $content = $response.filter("#content");
$("#content").empty().append($content); // <-- appending #content to #content?
console.log('content is: ', $content);
});
的新元素附加到页面上具有相同ID的现有元素。我假设你只想附加孩子。
<h3> JS файл </h3>
这应该是你的答复:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<script type="text/javascript" src="jquery.js"> </script>
<script type="text/javascript" src="history/amplify.store.js"> </script>
<script type="text/javascript" src="history/history.adapter.jquery.js"> </script>
<script type="text/javascript" src="history/history.js"> </script>
</head>
<style type="text/css">
body {
padding: 10px;
}
</style>
<body>
<script>
var History = window.History;
$(function() {
History.Adapter.bind(window,'statechange', function() {
$.get(History.getState().url, {text: "123"},
function(response) {
var $response = $(response);
var $content = $response.find("#content");
$("#content").empty().append($content);
console.log($content);
});
});
$("a").click(function() {
History.pushState(null, null, $(this).attr("href"));
return false;
});
});
</script>
<a href="ffmpeg.php">Начало</a> | <a href="js.html">JSинг</a>
<div id="content">
<h3> JS файл </h3> <!-- <<--THIS should be your response -->
</div>
<div id="c2">footer</div>
</body>
</html>
...而是你发送了这个:
{{1}}