嗨,我需要一些 jquery 方面的帮助,当单击旁边的复选框时,我正在重命名下拉列表。我想在下面的代码中获取名为“Prev”的下拉列表的选定选项值,并将其分配给单击的复选框。我希望这是有道理的。谢谢

$('.mutuallyexclusive').live("click", function() {


            checkedState = $(this).attr('checked');
            $('.mutuallyexclusive:checked').each(function() {
                $(this).attr('checked', false);
                $(this).attr('name', 'chk');
            });
            $(this).attr('checked', checkedState);

            if (checkedState) {
                jQuery('#myForm select[name=cat.parent_id]').attr('name', 'bar')

                // here is the bit i need help with
                // get the selected option of the dropdown prev and set it to $(this).val.. something along those lines
                var prev = $(this).prev('select').attr("name", 'cat.parent_id');

            }
            else {
                var prev = $(this).prev('select').attr("name", 'dd');
            }

        });
    });

最佳答案

HTML 结构将有很大帮助,但第一个优化是缓存您的初始复选框。接下来,利用 jQuery 中的隐式迭代。如果我明白你想要做什么,我最终会得到这个:

$('.mutuallyexclusive').live("click", function() {

    var $check = $(this);

    var checkedState = $check.attr('checked');

    $('.mutuallyexclusive:checked')
      .attr('checked', '')
      .attr('name', 'chk');

    $check.attr('checked', checkedState);

    if (checkedState) {
        $check.attr('name', $check.prev('select').val());
    } else {
        $check.attr('name', 'dd');
    }

});

我无法从您的问题中确定您是否要将复选框的值分配给选择列表,反之亦然。我选择了“将复选框的名称设置为选择列表的值”。希望这就是你所追求的。

关于jquery 小问题我需要帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2878583/

10-14 13:43