我正在尝试在 Wordpress 中使用可重复字段进行自定义元框,包括每个输入之前的数字(用于专辑的曲目列表),如下所示:
- 标题(删除)
- 标题(删除)
- 等等等等
我有一个“删除”按钮来删除一个字段,我需要更新为优于我替换的数字的数字。当我删除一个字段时,数字(及其 ID)的每次替换都可以正常工作,除非在一种情况下,当有超过(恰好)10 个字段时,上级或等于 10 的数字不会被替换。
但是,如果删除第 11 个字段,第 12 个字段将正确地将其编号替换为“11”。
这是我的jQuery:
jQuery('.repeatable-remove').click(function(){
var splittingNumber = jQuery(this).parent().find('input').attr('id');
var splitNumber = splittingNumber.split('_');
var splittedNumber = splitNumber[2];
jQuery('.album_track').each(function() {
var albumSplitNumber = this.id.split('_');
var albumSplittedNumber = albumSplitNumber[2];
var albumSplittedMinusOne = albumSplittedNumber - 1;
if (albumSplittedNumber > splittedNumber) {
if (albumSplittedNumber >= 10) {
jQuery(this).parent().find('.repeatable-autonumber').empty().append(albumSplittedMinusOne+'. ');
}
else if (splittedNumber < 10) {
jQuery(this).parent().find('.repeatable-autonumber').empty().append('0'+albumSplittedMinusOne+'. ');
};
jQuery(this).attr('id', 'album_track_'+albumSplittedMinusOne);
jQuery(this).attr('name', 'album_track_'+albumSplittedMinusOne);
};
})
jQuery(this).parent().remove();
return false;
});
有关信息,我使用名为“album_track_1”、“album_track_2”等的 ID 字段执行此操作...
我真的不明白为什么数字10有问题......
编辑 HTML 代码:
<ul id="<?php echo $album_tracklist_field['id']; ?>-repeatable" class="custom_repeatable">
<?php
$i = 1;
if (isset($custom["album_track_$i"][0])) {
while(!empty($custom["album_track_$i"][0])) {
?>
<li>
<span class="repeatable-autonumber"><?php if ($i <= 10) { echo '0'.$i.'. '; } else { echo $i.'. '; } ?></span>
<input type="text" class="regular-text code album_track" name="album_track_<?php echo $i; ?>" id="album_track_<?php echo $i; ?>" value="<?php echo $custom["album_track_$i"][0]; ?>">
<span class="repeatable-remove"><?php _e('Remove', 'albums') ?></span>
</li>
<?php
$i++;
}
} else {
?>
<li>
<span class="repeatable-autonumber">01. </span>
<input type="text" class="regular-text code album_track" name="<?php echo 'album_track_' . $i; ?>" id="<?php echo 'album_track_' . $i; ?>" value="" placeholder="<?php _e('Enter the name of the song', 'albums') ?>">
<span class="repeatable-remove"><?php _e('Remove', 'albums') ?></span>
</li>
<?php
}
?>