2

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

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

4

3 回答 3

1

尝试将响应包装成div,将其放入变量中,然后用于find()从响应中获取您需要的元素。

希望,这有帮助。

于 2012-04-24T16:44:39.330 回答
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') ); 
   }
 }
于 2012-04-24T16:44:59.017 回答
0

像这样将 hast 标签添加到 div 中:#div_1 因为它是一个 id。

于 2012-04-24T16:45:43.630 回答