2011-09-06 198 views
0

我有一個運行值列表,它是通過單擊一組複選框構建的。取消選中該複選框後,該值將從列表中刪除。這件作品很好。從列表中刪除值

此外,當我檢查選項的文本被添加到選定的部分。當我取消選中我希望刪除選擇選項的選項時。如果所選選項已被刪除,我需要取消選中該複選框並從運行列表中刪除該值。

$(".myCheckboxClass").change(function() {  
    var list = $('#bodyIDList').data('value'); 
    if($(this).is(":checked")) {list.push($(this).val());   
    var text = $('label[for=' + $(this).val() + ']').text();  
    $("#selectedListSelected").append('<label></label>'); 
    $("#selectedListSelected").append('<ul class="options"><li onclick="this.parentNode.removeChild(this);">' + text + '</li></ul>');   
    } else { 
    var index = list.indexOf($(this).val());   
    list.splice(index, 1);     
    $(this).closest('ul').remove();   
    }  
    $("#bodyIDList").val(list); 
}); 
+1

你可以發佈一些HTML – Evan

回答

0

添加新選擇後,找出索引編號在您的數組中。然後,您可以將自定義類別分配給UL標籤。如果您的數組索引是7,那麼你可以添加一個類,如「arr7」你UL:

var arrPosition = 'arr' + list.indexOf($(this).val()); 
$("#selectedListSelected").append('<ul class="options ' + arrPosition +'"><li onclick="this.parentNode.removeChild(this);">' + text + '</li></ul>'); 

當你刪除該數組中的值,你知道索引,所以你可以做一個快速的jQuery選擇器獲得正確的UL節點並將其刪除:

var arrPosition = 'arr' + index;  
$('ul.' + arrPosition).remove();