在AJAX响应中使用jquery的父函数

时间:2011-10-19 12:27:39

标签: jquery

我对jquery有些新意,并且不知道这是否可行,所以这里有。

基本上,我使用的是ajax get请求,结果是在有效的html中,我已经可以在页面上选择我想要的特定对象,然后我想用它来获取它的所有兄弟,这是代码看起来如何:

$.ajax(
    {
        type: 'GET',
        url: requestUrl,
        dataType: 'html',
        success: function(data, textStatus)
        {
            var allLinks = $(data).find("a");
            allLinks.each(function(){
                        if($(this).text() == 'selectme'){
                             $(this).parent().children("a").last().css('color', 'red');
                        }
                    });
              }
      });

这就是响应的样子:

<html>
<body>
   <a>irrelevant link 1</a>
   <div>
      <a>selectme</a>
      <a>sibling 1</a>
      <a>sibling 2</a>
      <a>last sibling, which I want to get</a>
   </div>
   <a>irrelevant link 2</a>
   <a>irrelevant link 3</a>
</body>
</html>

所以,基本上,我想得到selectme链接的最后一个兄弟。是否有可能让父母使用响应而不是实际的页面元素,如果没有,我怎么能得到兄弟姐妹而不获得任何不相关的链接?我可以使用“selectme”索引创建一个子选择,但是如何在“无关链接2”之前停止?

2 个答案:

答案 0 :(得分:1)

您是否尝试将响应添加到HTML文档中。

$.ajax(
{
    type: 'GET',
    url: requestUrl,
    dataType: 'html',
    success: function(data, textStatus)
    {
        $('body').html(data); // jQuery works on actual DOM, not just a string
        var allLinks = $('body').find("a");
        allLinks.each(function(){
                    if($(this).text() == 'selectme'){
                         $(this).parent().children("a").last().css('color', 'red');
                    }
                });
          }
  });

答案 1 :(得分:0)

使用最后一个选择器

$("div a:last-child")

即。

$.ajax(
    {
        type: 'GET',
        url: requestUrl,
        dataType: 'html',
        success: function(data, textStatus)
        {
             $("div a:last-child").css('color', 'red');                
      });