我想获取所有下一个特定的类元素并更改它们的文本。特别是条目的数量,因为我已经发出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 + ' | ');
}
});
答案 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);
});
});