我错过了什么?试图将类名添加到我从服务器返回的html中

时间:2011-12-18 06:51:49

标签: jquery

我有一个ajax请求,可以获取一些html

<div id="test">
</div>

在我的成功方法中我有这个

  $('#test', response).addClass('mytest');
 $('#SomethingOnMyPage').after(response);

然而,当我在页面上看到它时,我看不到mytest。就好像它没有添加课程一样。

我也试过

$(response).filter('div.test').addClass('mytest');

相同的结果

2 个答案:

答案 0 :(得分:1)

如果div#test确实是响应中最外层的HTML元素,那么这就是您所需要的:

var $elt = $(response).addClass('mytest');
$('#somethingOnYourPage').after($elt);

这是因为$('#test', response) - 相当于$(response).find('#test') - 搜索response最外层元素的后代;由于#test是最外层的元素而不是后代元素,因此该选择器将不匹配任何内容。

答案 1 :(得分:0)

$(response).filter('div.test').addClass('mytest');

这不会奏效,因为它会寻找带有'test'类的div,而不是ID'test'。你可以尝试这个:

$(response).filter('#test').addClass('mytest');

看它是否有所不同。

关于第一部分。正如另一位回答者所说,response是div#test,所以寻找#test 作为孩子总是会失败。如果这仍然不是解决方案,请尝试在尝试修改之前将片段添加到DOM (这不应该是必需的,但是在这样做时,您可能会发现确切的错误。您的jQuery无效的片段。)

另外,您是通过“查看源代码”还是通过浏览器的开发人员工具查看此内容?如果是先前的,它将永远不会显示,因为它只会在执行任何JS之前显示从服务器下载的原始HTML。