如何从h3元素克隆单个部分内容?

时间:2011-08-12 07:24:38

标签: javascript jquery

大家早上好!

我希望你能帮我简化我的代码片段。 我正在克隆一个包含所有内容的h3元素。 此克隆元素包含两个a元素和三个不同的文本片段。 我想删除内容的a-elements和part1和part2是一些静态文本。 他们只有我想要保留的文字是textOfUnknownLength。

问题1 我必须使用2.6版本的jQuery-library。 这是我到目前为止的代码,它很难看。我无法想出另一种方式。

克隆的h3元素

<h3 class="title">
   part1 <a href="#" class="link1">text</a>
   part2 textOfUnknownLength
   <a href="#" class="link2">text</a>
</h3>

获取textOfUnknownLength

的代码
var name = $("h3",e).clone();
name.find(".link1, .link2").remove();
name.filter("h3").each(function(){
  if($(this).html() != ''){
    $(this).html($(this).html().replace('part1','').replace('part2',''));
  }
});

问题2 我想用span替换h3,但保留内容。我该怎么做?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

要将所有h3替换为span,您可以使用此功能:

$( "h3" ).each( function( index, element ) {
   var $element = $( element );
   $element.replaceWith( "<span>" + $element.html() + "</span>" );
} );

编辑:我编辑了代码以使用您的jQuery版本(&lt; 1.4)

编辑2:我编辑的代码真正适用于您的jQuery版本(&lt; 1.4)

答案 1 :(得分:0)

尝试这样的事情......

演示:http://jsfiddle.net/bZ8px/1

var name = $('.title').text().split(' ');
for (var i = 0; i < name.length; i++) {
    if (name[i] == 'part2')
        $('.title').after('<span>'+name[i+1]+'</span>');
}

答案 2 :(得分:0)

如果您的目标是转

<h3 class="title">
   part1 <a href="#" class="link1">text</a>
   part2 textOfUnknownLength
   <a href="#" class="link2">text</a>
</h3>

<span>textOfUnknownLength</span>

退房: http://jsfiddle.net/h6DKe/8/