使用jQuery删除两个html标记之间的文本

时间:2016-05-31 21:03:54

标签: javascript jquery html

我有以下HTML:

<span>
<input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> .       
<label for="element_18_1">Dollars</label>
</span>

我想使用jQuery删除输入和标签之间的点。

我尝试了这段代码没有结果:$('#element_18_1').contents(':gt(2)').remove();谢谢

5 个答案:

答案 0 :(得分:1)

这将删除所有不在标记内的文本(作为元素)

$(document).ready(function(){
current = $('#element_18_1');
siblings = $('#element_18_1').siblings();
parent = $('#element_18_1').parent();
$(parent).html('');
$(parent).append(current).append(siblings);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<span>
<input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> .       
<label for="element_18_1">Dollars</label>
</span>

您可以通过加入一些线来缩短它。我试图一步一步地展示它

答案 1 :(得分:1)

然而,您可以选择更简单的方式,更简单的方式,可靠且易懂的方式,纯粹的JavaScript方式。

element_18_1.nextSibling.data=" ";

<span>
<input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> .       
<label for="element_18_1">Dollars</label>
</span>
<Img src="<?php echo $array['image_url']; ?>">

答案 2 :(得分:0)

您可以使用contents()slice(),即:

var el1 = $("#element_18_1"), el2 = $("#element_18_1 + label"), contents = el1.parent().contents();
contents.slice(contents.index(el1) + 1, contents.index(el2)).remove();
el1.after(" ");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>
<input type="text" value="0" size="10" class="element text currency" readonly="readonly" name="element_18_1" id="element_18_1"> .       
<label for="element_18_1">Dollars</label>
</span>

答案 3 :(得分:0)

As stated here,我建议过滤掉文本节点,然后删除它们:

$('span')
  .contents()
  .filter(function() {
    return this.nodeType == 3; //Node.TEXT_NODE
  }).remove();

See fiddle

答案 4 :(得分:0)

这段代码有点粗糙,但它应该可行

$("span:contains('.')").html($("span:contains('.')").html().replace('.',''));