作为onClick事件的一部分,每个被点击的行的后续兄弟的隐藏“序列”输入的值减少了一个。
$('#variants_' + product + ' .sequence')
.filter(function(){
return parseInt(this.value, 10) > sequence;
})
.val(function(index, value){
return value - 1;
});
我试图改变的输入最终看起来像这样:
<input type="hidden" name="v_sequence_6" id="v_sequence_6" value="function (index, value){
return value - 1;
}" class="sequence">
如何在不将其转换为字符串的情况下使用.val()的函数参数?
修改 这是相关功能的其余部分
function deleteVariant(row, product) {
var x = /x/
var sequence = $('#variantRow_' + row + ' .sequence').val();
if (! x.test(row) ){
$('#variants_' + product).closest('#variants').append("<div class='grayover'><div class='ajaxLoaderContainer'><div class='ajaxLoader'><img src='images/ajax-loader.gif' /></div></div></div>");
$.post('includes/_e-learning_ajax.php', { 'mode': 'deleteVar', 'variant': row }, function(data){
if (data == 'success'){
$('#variants_' + product + ' .sequence')
.filter(function(){
return parseInt(this.value, 10) > sequence;
})
.val(function(index, value){
return value - 1;
});
$('#variantRow_' + row).remove();
coursesReady();
} else {
alert(data);
}
$('.grayover').remove();
});
} else {
$('#variantRow_' + row).remove();
}
}
答案 0 :(得分:0)
问题似乎是你的jQuery版本小于1.4,这是在引入val
方法的函数传递时(我们从你的评论中的对话中确定的)。这确实有意义,因为val
方法将在正在传递的函数上调用toString
并将其完全打印为输入值。
这可以在这里显示:http://jsfiddle.net/Hhk7T/