使用jquery访问ajax html响应的元素

时间:2012-04-24 16:42:07

标签: jquery ajax html-parsing

我在访问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的第一级?

非常感谢,对不起我的英语(我不是母语人士) 幻影

3 个答案:

答案 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。