除了jQuery中的一个元素,我怎么能清空元素呢?

时间:2013-08-14 07:19:35

标签: jquery html

实施例,

 <td id="example">
   Something is inside here.
   <button id="paymentBtn">pay</button>
 </td>

我想要做的是,在付款按钮之前"only emtpy"并插入这样的新内容,

<td id="example">
   Deleted old one, and inserted new one.
   <button id="paymentBtn">pay</button>
 </td>

我知道我可以使用

$("#paymentBtn").before("inserted new one");

但我怎么能空着?

如果我是空的例子。它吹了一切,

 $("#paymentBtn").before().empty(); 

这不起作用:(

3 个答案:

答案 0 :(得分:2)

尝试

$($("#paymentBtn").get(0).previousSibling).remove();

演示:Fiddle

正如所建议的那样,你可以

$('#add').click(function(){
    $("#paymentBtn").before("<span>inserted new one</span>");
})
$('#remove').click(function(){
    $("#paymentBtn").prev('span').remove();
})

演示:Fiddle

答案 1 :(得分:0)

我理想情况下我的html就像这样......其中的文字并不直接在里面:

<td id="example">
   <span>Something is inside here.</span>
   <button id="paymentBtn">pay</button>
 </td>

然后我希望我的html稍后会出现:

<td id="example">
   <span>Deleted old one, and inserted new one.</span>
   <button id="paymentBtn">pay</button>
 </td>

然后我会这样做:

$('#example').find('span').html('Deleted old one, and inserted new one.');

或者,$('#paymentBtn').prev().html('Deleted old one, and inserted new one.');

答案 2 :(得分:0)

其中一个是,将文本存储到<span class="deleteThis"></span>

 <td id="example">
   <span class="deleteThis"> Something is inside here.</span>
   <button id="paymentBtn">pay</button>
 </td>

删除它,或用其他文字重写:

$("#paymentBtn").parent().find(".deleteThis").empty().html("Changed"); 

或直接从父母导航:

$("#example .deleteThis").empty().html("Changed"); 

第二个答案是,您可以删除除一个元素之外的所有内容:

var oldElem = $("#paymentBtn").clone();
$('#example').empty().append("Deleted successfully.").append(oldElem);

您克隆您不想删除的元素,清空父元素并恢复克隆元素。