我希望使用 jQuery 来确定当前页面是否已更改上游,如果是,则执行一些操作。
我想通过对 AJAX 调用返回的数据使用 jQuery 选择器来实现此目的(就本问题而言,我的“页面已更改”指标将是“第一个 <h1>
的内容已更改”)。
因此,我发现自己想在 AJAX 返回的 HTML 上使用 jQuery 选择器 get()
。到目前为止,我发现的“最佳”“解决方案”是将数据附加到某个隐藏的 div,并在其上使用选择器,如下所示:
var old_title = $('h1').html();
$.get(url, function(data) {
$('#hidden_temporary_storage').append(data);
var new_title = $('#hidden_temporary_storage h1').html();
if (new_title !== old_title) {
do_something();
}
});
这感觉非常错误 - 我会嵌套 html/head/body 标签,并且会出现 id 冲突等问题。
我无法控制上游页面,所以我不能只是“以更方便的格式获取数据”,唉。
最佳答案
你可以这样做:
var x = $('<div>'+data+'</div>').find('h1').html();
// use x as you like
即您无需将返回的数据附加到您的页面即可从其中定义的 HTML 元素获取属性和值。这样就不会出现 id 冲突、多个 head/body 标签等问题。
关于javascript - 在 AJAX 响应数据上使用 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788979/