JQuery选择带有条件的框循环

时间:2012-11-16 16:06:53

标签: javascript jquery jquery-selectors

我尝试使用JQuery Select Box和Loop Help问题,但似乎我的实现有点不同,我似乎无法使它工作。

我有一个fromSelectBox和一个toSelectBox,我试图移动选项。我试图设置两个条件。如果将选项A放入toSelectBox侧,则它应始终位于底部。如果选项B已经在toSelectBox侧,则不应允许移动A.

我能够做到这一点,所以我不能从列表的底部移动选项A或B,我不能移动A或B以下的任何东西,但是当我一次移动一组物品时,订单可能被打扰

基本上我想要做的就是将项目从fromSelectBox移动到它应该循环的toSelect框,并在必要时使用。

这是我到目前为止所拥有的。

function resortOnMove() {
    $('select').each(function(){
       $('option', this).each(function(){
        if ($('#toSelectBox option:selected').val() == '03' || $('#toSelectBox option:selected').val() == '01') {
           alert("moving now");
            if ($('#toSelectBox option:selected').index() < $('#toSelectBox option:last').index()) {
               $('#toSelectBox option:selected').insertAfter($('#toSelectBox option:last'));
          }
       }
       })
    });

1 个答案:

答案 0 :(得分:0)

我决定不再进行重新排序,而是在添加倍数时最后将值附加到最后。

   $('#moveright').click(function () {
    var tempObjects = null;
    $('#fromSelectBox option:selected').each(function () {
        if (($('#toSelectBox option:last').val() == "03" || $('#toSelectBox option:last').val() == "01") && ($('#fromSelectBox option:selected').val() == "03" || $('#fromSelectBox option:selected').val() == "01")) {
            alert($('#toSelectBox option:last').text() + " and " + $('#fromSelectBox option:selected').text() + " cannot both be in Prioritized Categories.");
            return false
        }
        else if ($('#toSelectBox option:last').val() == "03" || $('#toSelectBox option:last').val() == "01") {
                var movingObjects = $(this);
                movingObjects.remove();
                movingObjects.insertBefore($('#toSelectBox option:last'));
        }
        else {
            $('#fromSelectBox option:selected').each(function () {
                if ($(this).val() === "01" || $(this).val() === "03") {
                    if (tempObjects!=null){
                        alert(tempObjects.text()+ " and " + $(this).text() + " cannot both be in Prioritized Categories.");
                        return false
                    }
                    tempObjects = $(this);
                    $(this).remove();
                }
                $(this).remove().appendTo('#toSelectBox');
            });
            if (tempObjects != null) {
                tempObjects.appendTo('#toSelectBox');
            }
        }
    });
});