将一个div类父级添加到img和iframes中,并将blockquotes除外

时间:2013-07-21 17:09:35

标签: jquery html

我正在使用这些jQuery代码段:

$(".post img").each(function(){ $(this).wrap('<div class="fwparent" />'); });
$(".post iframe").each(function(){ $(this).wrap('<div class="fwparent" />'); });

用fwparent div类包装我的图像和iframe。但现在我需要他们为blockquotes做例外。

现在看起来像这样:

<div class="post">
...
<div class="fwparent"><img src="image.png"></div>
<div class="fwparent"><iframe src="movie"></div>
...
<blockquote>
<div class="fwparent"><img src="image.png"></div>
<div class="fwparent"><iframe src="movie"></div>
</blockquote>
...
</div>

但我希望它看起来像这样:

<div class="post">
...
<div class="fwparent"><img src="image.png"></div>
<div class="fwparent"><iframe src="movie"></div>
...
<blockquote>
<img src="image.png">
<iframe src="movie">
</blockquote>
...
</div>

有谁知道如何实现这个目标?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码:

$(".post img, .post iframe").each(function(){
    if ($(this).parent().prop('tagName') != 'BLOCKQUOTE') {
        $(this).wrap('<div class="fwparent" />');
    }
});

代码检查当前元素的父元素是否为blockquote,如果不是,则包装此元素。该代码还使用prop method

答案 1 :(得分:0)

你可以试一试:

$(".post > img").each(function(){ $(this).wrap('<div class="fwparent" />'); });
$(".post > iframe").each(function(){ $(this).wrap('<div class="fwparent" />'); });

或更短的版本:

$(".post > img, .post > iframe").each(function(){ 
   $(this).wrap('<div class="fwparent" />'); 
});