gpt4 book ai didi

javascript - jQuery 在过滤 AJAX 响应时返回未定义

转载 作者:行者123 更新时间:2023-11-30 16:42:23 25 4
gpt4 key购买 nike

我正试图找出 jQuery 中的 AJAX,并试图提取页面上一个元素的内容并将其注入(inject)另一个元素。这是我一直在玩的一个测试场景:

第一页:

...
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<button>Load it!</button>
<div class="content"></div>
...

第二页:

...
<div class="container">
<h1>Hello World!</h1>
<div class="text">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui nulla impedit a nostrum eos voluptas, quidem cum, consequatur suscipit voluptate officia sapiente laboriosam similique dignissimos praesentium obcaecati, nemo commodi, laborum!</p>
</div>
</div>
...

第一页的脚本文件:

$(function(){
$('button').on('click', function(){
$.ajax({
url: "ajax/index.html"
}).done(function(response){
$('.content').html($(response).find('.container').html());
});
});
});

stack exchange 上的一些帖子,例如 this onethis one已经指出这是我应该使用 AJAX 从另一个页面获取 1 个元素的 HTML 的方向。但是,在第一页上运行代码时,.container 中的内容不会返回,而是将这些 jQuery 方法传递给 console.log()(console.log($(response).find('.container').html());) 返回 undefined 到控制台。这里有什么问题吗?

另外,是的,我知道这里使用 .load() 是一个选项,但我真的很想学习如何使用 jQuery 的 AJAX 方法,因为我相信它可以给程序员更多找到调整的控制。

最佳答案

更改获取响应元素容器的方式。

来自:

$('.content').html($(response).find('.container').html());

收件人:

$('.content').html($($.parseHTML(response)).filter(".container").html()); 

使用 $.parseHTML() 会将您的响应 string 转换为 DOM 节点,以便您可以在其中找到这些元素。

关于javascript - jQuery 在过滤 AJAX 响应时返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31759240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com