jQuery更改所有下一个元素的文本

时间:2015-04-22 13:59:22

标签: javascript jquery text next

我想获取所有下一个特定的类元素并更改它们的文本。特别是条目的数量,因为我已经发出ajax请求删除数据库中的记录,我不想重新加载页面。

首先,我得到实际的条目号,以了解应该替换哪个文本(或条目号)(for loop)

FileMode.Create

然后我想通过所有下一个入口头来更改实际的条目编号(将数字减少1)。

$entryHeadContent = $this.closest('.entry').find('.entry-head').text();
$entryID = parseInt($entryHeadContent.split('|')[0].replace(/ /g,''));

但不知何故,代码似乎没有被执行,但我没有得到它。为什么? $这是表格(测试)。我仍然在ajax请求中(在ajax请求的.done部分。

这是条目html(tpl)文件,用于一个条目:

alert($this.nextAll('.entry-head').length); // Is 0

$this.nextAll('.entry-head').each(function(index){
    alert($this.nextAll('.entry-head').length);
    for (i = entryID; i <= $this.nextAll('.entry-head').length; i++) { 
        index.text().replace(i, (i -1)) 
        alert('Index: ' + index + ' | ');
    }
});

1 个答案:

答案 0 :(得分:2)

您的代码:

$this.nextAll('.entry-head').each(function(index){
    alert($this.nextAll('.entry-head').length);
    for (i = entryID; i <= $this.nextAll('.entry-head').length; i++) { 
        index.text().replace(i, (i -1)) 
        alert('Index: ' + index + ' | ');
    }
});

你做index.text();对你来说不是很奇怪。看到该索引只是一个数字,而不是一个jquery对象。 .each()还带有回调中的第二个参数。 function(index, value){}

$this.nextAll('.entry-head').each(function(index, value){
    alert($this.nextAll('.entry-head').length);
    for (i = entryID; i <= $this.nextAll('.entry-head').length; i++) { 
        $(value).text().replace(i, (i -1)) 
        alert('Actual Index: ' + index + ' | ');
    }
});

我认为这会更好用吗?

<强>更新

我让demo部分工作了。在我继续之前,告诉我我是否与你的波长相同。

<强>更新

Bugged - &gt; demo2

已修复 - &gt; Demo3

   $('.test').on('submit', function (e) {
    e.preventDefault();

    var $this = $(this);
    var $this2 = $this.closest('.entry').find('.entry-head');
    var $entryID = parseInt($this2.text().split('|')[0].replace(/ /g,''));
    alert($entryID);
    var $entries = $('.entry-head').not($this2).filter(function(){
        return parseInt($(this).text().split('|')[0].replace(/ /g, '')) > $entryID;
    }); // Is 0

    $entries.each(function (index, value) {
            var id = $entryID + index + 1;
            $(value).text($(value).text().replace(id, (id-1)));
            console.log('Index: ' + index + ' | ' + $entryID);
    });
});