javascript - jQuery change text of all next elements -


i next specific class elements , change text of them. number of entry because i've made ajax request delete record in datatabse , don't want reload page.

first actual entry number know text (or entry number) should replaced (for loop)

$entryheadcontent = $this.closest('.entry').find('.entry-head').text(); $entryid = parseint($entryheadcontent.split('|')[0].replace(/ /g,'')); 

then go through next entry-heads change actual entry number (decrease number 1).

alert($this.nextall('.entry-head').length); // 0  $this.nextall('.entry-head').each(function(index){     alert($this.nextall('.entry-head').length);     (i = entryid; <= $this.nextall('.entry-head').length; i++) {          index.text().replace(i, (i -1))          alert('index: ' + index + ' | ');     } }); 

but somehow code don't seems executed don't it. why? $this form (test). i'm still in ajax request (in .done part of ajax request.

this entry html(tpl) file, 1 entry:

<div class="entry">     <div class="entry-head">         #{$entrynumber} |          name: {$entry.name}         ....     </div>     <div class="entry-content">         {$entry.message}         <form action="index.php?site=entry" class="test" method="post">             <div class="entry-options">                 <input type="submit" value="edit" name="edit">                 <input type="submit" value="delete" onclick="return confirm('are sure want delete entry?');" name="delete">                   <input type="hidden" value="{$entry.id}" name="entryid">             </div>         </form>     </div> </div> 

your code:

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

doesn't seem weird you index.text(); . seeing index number , not jquery object. .each() comes second parameter in callback. function(index, value){}

$this.nextall('.entry-head').each(function(index, value){     alert($this.nextall('.entry-head').length);     (i = entryid; <= $this.nextall('.entry-head').length; i++) {          $(value).text().replace(i, (i -1))          alert('actual index: ' + index + ' | ');     } }); 

i think work better?

update:

i made demo partially working. before continue, tell me if i'm on same wavelength you.

update:

bugged --> demo2

fixed --> 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;     }); // 0      $entries.each(function (index, value) {             var id = $entryid + index + 1;             $(value).text($(value).text().replace(id, (id-1)));             console.log('index: ' + index + ' | ' + $entryid);     }); }); 

Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -