在jquery中查找标记内的标记并替换内容

时间:2013-04-30 00:02:33

标签: javascript jquery

我的html页面中有四个article标签,其中包含col类。在每篇文章中,我都有一个div,其中包含heading类。在其中我有一个img标签。

我正在尝试遍历每个artcle并删除该图像标记并替换为一些不同的HTML。

这在Wordpress中,因此是时髦的jquery函数包装器。

现在我只想尝试找到并替换工作(下面) - 我还没有尝试过每篇文章的不同代码。我无法弄清楚为什么以下不起作用。

(function ($) {
  $(document).ready(function() {
    $('article.col').each(function(el) {
      $((el).find('heading img').replaceWith('<newtag>somecode</newtag>'));  
    });
  });
 }(jQuery));

3 个答案:

答案 0 :(得分:2)

调用each时,函数值为function(index, element)。现在,您正在尝试使用$(el)搜索数字,尝试$(this)或向您的函数添加其他参数。

此外,课程heading

缺少点
$('article.col').each(function(index, el) {
   $(el).find('.heading img').replaceWith('<newtag>somecode</newtag>');  
});

$('article.col').each(function() {
    $(this).find('.heading img').replaceWith('<newtag>somecode</newtag>');  
});

答案 1 :(得分:0)

(function ($) {
  $(document).ready(function() {
    $('article.col').each(function(el) {
       $(this).find('heading img').replaceWith('<newtag>somecode</newtag>');  
   });
  });
 }(jQuery));

顺便说一句,jQuery包装器是为了防止使用$符号与其他库发生冲突。

答案 2 :(得分:0)

语法有一些问题,

$(el.find('heading img').replaceWith('<newtag>somecode</newtag>')); 

应该是

$(this).find('heading img').replaceWith('<newtag>somecode</newtag>'); 

看到这个小提琴:

http://jsfiddle.net/5bEq7/1/