0

这个问题与我昨天问的另一个问题有关,它的链接是: Parse HTML in jquery through ajax into elements and replace each对应的页面

基本上我想用ajax调用一个php页面,并将响应中的元素替换为页面上的相应元素。我在答案中得到了以下功能:

 $(data ).filter('.maindiv').each(function (index) 
  /* "this" is the current div in response*/          
  $('#'+this.id).replaceWith(this);
 });

当我要替换的 div 具有常规的 id= 时,上述函数运行良好,但如果使用像 gid= 这样的自定义属性,例如它将不起作用。我怎样才能解决这个问题??

谢谢

4

3 回答 3

2

将 attr 用于自定义属性,而不是使用this.id您可以使用$(this).attr("YourAttr");

$(data ).filter('.maindiv').each(function (index) 
   /* "this" is the current div in response*/          
    $('#'+$(this).attr('gid')).replaceWith(this);
});
于 2013-02-08T12:57:33.427 回答
1

您可以选择具有 gid 属性的节点:

$('[gid]').replaceWith(this);

您甚至可以通过仅选择具有所需 gid 值的节点来更精确

$('[gid="hello"]').replaceWith(this);

希望能帮助到你

于 2013-02-08T13:03:09.090 回答
0

对于数据,您可以使用自定义属性。HTML5 规定data-属性的使用。很酷的是,这也适用于 HTML4!jQuery 可以使用 data 方法读取它。

我会推荐:

<div class="maindiv" data-grid="myGrid">...</div>

$(data).filter('.maindiv').each(function (index)        
     $('#'+$(this).data('gid')).replaceWith(this);
});
于 2013-02-08T13:01:30.487 回答