jQuery在textarea中显示html排除一个元素

时间:2011-06-23 06:54:02

标签: javascript jquery html

我在容器中有4个div。我想显示容器的html,其中包含textarea中的div。我能做到这一点。问题是,我不想获得容器的所有html。我不想得到#iv #three。我想复制除div #three之外的容器的所有html。我可以使用$('#three').remove()但我不想删除div,我只是不想将它的html值复制到textarea。检查jsfiddle http://jsfiddle.net/rzfPP/

<div id="container">
  <div id="one">test 1 </div>
  <div id="two">test 2 </div>
  <div id="three">test 3 </div>
  <div id="four">test 4 </div>
</div>    
<textarea id="save"></textarea>

var x = $('#container').html();
$('#save').val(x);

4 个答案:

答案 0 :(得分:3)

试试这个

$("#container").clone().find("#three").remove().end().html();

http://jsfiddle.net/rzfPP/21/

答案 1 :(得分:1)

/*
var x = $('#container').html();
$('#save').val(x);
*/

var lol = $('#container').clone()
$(lol).find('#three').remove();


$('#save').val(lol.html());

答案 2 :(得分:1)

$('#container').clone().find('#three').remove().end().html();

从技术上讲,这是非法的,因为你复制了ID,但它运行正常。

http://jsfiddle.net/rzfPP/33/

编辑:有人打败了我:(好吧。

答案 3 :(得分:0)

var text = "";

$('#container div').each( function() {

   if ( this.id != "three" ) {

      text += $(this).html();

   }

});

$('#save').val( text );

http://jsfiddle.net/rzfPP/31/

基本上你逐个检查#container里面的div,并检查他们的id。如果它是您想要的,请将其html添加到字符串中。然后在结尾处将该字符串作为textarea值。