0

作为 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();
}
}
4

1 回答 1

0

问题似乎是您的jQuery版本小于1.4,这是在val引入该方法的函数传递版本时(我们从您评论中的对话中确定)。这确实有意义,因为该val方法将调用toString正在传递的函数并将其完全打印为输入值。

这可以在这里显示:http: //jsfiddle.net/Hhk7T/

于 2012-12-11T04:27:18.460 回答