在第二个<a> tag using Jquery</a>之后删除文字

时间:2014-04-11 10:39:03

标签: jquery

我正在尝试使用jquery

删除特定标记后出现的文本

我的HTML代码是

<div class="myclass">
    <a href="#"></a>
    <a href="#"></a>
    Hey I want to delete this text
</div>

Jquery的

$(document).ready(function() {
   $('.myclass').each(function() {
      // Confused here
      $(this).children(':nth-child(3)').text(''); 
   });
});

我猜这个班里没有第三个孩子。任何想法都将不胜感激。

5 个答案:

答案 0 :(得分:4)

你可以这样做:

$(document).ready(function () {
    $('.myclass').each(function () {
        // Confused here
        $(this).contents().filter(function () {
            return this.nodeType === 3 && $.trim(this.nodeValue).length;
        }).replaceWith('');
    });
});

<强> Fiddle Demo

答案 1 :(得分:1)

Fiddle Demo

$(document).ready(function () {
    $('.myclass a:eq(1)')[0].nextSibling.remove();
});

<小时/> :eq() Selector

  

要匹配的元素的从零开始的索引

$('.myclass a:eq(1)')在类a

的元素中获得第二个myclass标记

而不是.nextSibling.remove()

答案 2 :(得分:1)

你可以这样做:

$(document).ready(function() {
  $('.myclass').find('a:last')[0].nextSibling.remove();
});

答案 3 :(得分:0)

试试这个:

$(".myclass").contents().filter(function(){ return this.nodeType == 3; }).remove();

<强> Working Demo

答案 4 :(得分:0)

$('.myClass').html($('.myClass').html().substring(0,$('.myClass').html().lastIndexOf(">")))

我也遇到了类似的问题。这也可能对你有所帮助 How do I select text nodes with jQuery?