2

作为 jQuery 插件的一部分,使用 提取了一种奇怪的对象格式$.get(),这意味着在任何后函数挂钩中都无法进行 DOM 遍历:

$.get($href)
.done(function(){
  $linkClicked.addClass('active')
})
.fail(function(){
  $.get(settings.errorUrl, function(){
    $('.main-navigation .active').removeClass('active')
  })

})
.always(function(data){

  // The below line does not work correctly
  $(settings.target).hide().html( $(data).children(settings.target).html() ).fadeIn('fast')

})

如果有人能伸出援手,那就太好了。非常感谢。

4

3 回答 3

2

我想你可以这样做:

$.get('ajax/test.html', function(data) {
 var container = $('<div />').html(data);
 var contentYouNeed =  container.find('#ajaxID').html();
});

正如您在此处的文档( http://api.jquery.com/jQuery.get/)上看到的,返回datajQuery.get()是一个 PlainObject 或一个字符串。

数据
类型:PlainObjectString
与请求一起发送到服务器的普通对象或字符串。

要从此对象中检索内容,请将这些数据放入这样的 <div>对象中。

 var container = $('<div />').html(data);

并且可以find()用来获取内容。

var contentYouNeed =  container.find('#ajaxID').html();
于 2013-07-10T11:20:06.747 回答
1

不不不不。您不regex用于解析 HTML 请阅读此内容

此外,要解决您的问题,请使用jQuery 选择器$("#yourID").html()

于 2013-07-10T10:53:04.547 回答
0

所以响应总是一个div 元素?在这种情况下,只需获取其中的内容即可。不管 ID 和属性是什么。

$.get('ajax/call.php', function(data) {
    var contents = $(data).html();
});
于 2013-07-10T11:39:35.050 回答