我在访问ajax请求的html响应元素时遇到问题。我正在使用jquery,我尽可能地简化问题:
我有像这样的ajax html响应(保持非常简单):
<div id="div_1"><span id="span">Text in Span</span></div>
<div id="div_2">Text in div</div>
现在我尝试使用jquery访问此html响应的某些元素:
$.ajaxSetup(
{
success: function(html)
{
alert($('#span', html).html()); //works fine
alert($('#div_1', html).html()); // doesn't work, why?
alert($('#div_2', html).html()); // also doesn't work
alert( $('span', html).first().attr('id') ); // works fine
}
}
我实际上想得到第一个div元素的id,但我似乎无法访问html响应的第一个“级别”。我可能用div包围容器来解决问题,其中包含其他所有内容。
是否有其他解决方案可以有人解释我,为什么jquery似乎忽略了html的第一级?
非常感谢,对不起我的英语(我不是母语人士) 幻影
答案 0 :(得分:1)
尝试将回复包装到div
中,将其放入变量中,然后使用find()
从响应中获取所需的元素。
希望,这有帮助。
答案 1 :(得分:1)
您应该为id
选择器添加哈希值:
$.ajaxSetup(
{
success: function(html)
{
alert($('#span', html).html());
alert($('#div_1', html).html());
alert($('#div_2', html).html());
alert( $('span', html).first().attr('id') );
}
}
答案 2 :(得分:0)
将div标记为div,如下所示:#div_1因为它是一个id。