簡體   English   中英

如何突出顯示javascript列表框項目?

[英]How do I highlight a javascript listbox item?

我有一個函數,它可以將選擇框(列表框)中的選定項目與其上方的項目交換,可以正常工作,但我想使其選中,以便仍選擇后置項目。 因此,如果用戶希望繼續在框中向上移動項目,則可以繼續按下“上移”按鈕。

    function moveUp() {
        var list = document.getElementById('listbox');
        var numSelected = list.selectedIndex;
        var itemSelected = list.options;            

        if (itemSelected[numSelected].id == 0) {
            alert("Can't move this up the list!");
        } else {
            if (poiArrayList[numSelected - 1] != null) {
                var tempPOI = poiArrayList[numSelected];
                poiArrayList[numSelected] = poiArrayList[numSelected - 1];
                poiArrayList[numSelected - 1] = tempPOI;
                //The line below is what I have but that doesn't seem to work.
                list.selectedIndex = numSelected;
            } else {
                alert("The listbox is empty!");
            }
        }
    }

完整代碼

在這里看看: http : //jsfiddle.net/2ae9B/1/

我在generateListBox()添加了一個可選參數,您可以在其中設置生成列表后突出顯示的索引。 例如:

function moveUp() {
    var list = document.getElementById('listbox');
    var numSelected = list.selectedIndex;
    ...
    ...

    // regenerate the list passing the item to select
    generateListBox(numSelected - 1);
}

function generateListBox(selectedIndex) {
    var selectBox = document.getElementById("listbox");
    selectBox.innerHTML = "";
    for (var i = 0; i < poiArrayList.length; i++) {
        lbAddItem(poiArrayList[i].name, i);
    }

    // you should also check that is a valid integer here
    if(selectedIndex)
        selectBox.selectedIndex = selectedIndex;
}

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM