仅使用选择名称和选项值来标识“选择”选项

时间:2013-12-20 08:37:00

标签: javascript jquery

<select name="option[239]" onchange="jsFunction(this)">
    <option value="">--- Please Select ---</option>
    <option value="49">Double Standard</option>
    <option value="50">Single Express</option>
    <option value="51">Single Standard</option>
    <option value="48">Double Express</option>
</select>
<select name="option[240]" onchange="jsFunction(this)">
    <option value="">--- Please Select ---</option>
    <option value="49">Double Standard</option>
    <option value="50">Single Express</option>
    <option value="51">Single Standard</option>
    <option value="48">Double Express</option>
</select>

HTML

function jsFunction(element){
    alert("You changed to " + element.value );
    if (element.value=='50') {
        $('[name="option[240]"]').remove();
    }
}

脚本

好的我可以让它删除整个选择选项[240]但是我不知道如何从240删除其中一个选项(例如,如果选择50,则从选项[240]中删除49)

2 个答案:

答案 0 :(得分:2)

试试这个

HTML

<select id="test" name="option[240]" onchange="jsFunction(this)">
    <option value="">--- Please Select ---</option>
    <option value="49">Double Standard</option>
    <option value="50">Single Express</option>
    <option value="51">Single Standard</option>
    <option value="48">Double Express</option>
</select>

脚本

$("#test option[value='49']").remove();//it will remove value 49

答案 1 :(得分:2)

由于element引用了select元素,因此您可以使用它来查找要删除的选项。

如果您想删除预定义的元素,那么

function jsFunction(element) {
    var $select = $(element);

    if ($select.val() == '50') {
        $select.find('option[value=49]').remove()
    }
}

演示:Fiddle

如果要删除所选选项之前的所有选项,则

function jsFunction(element) {
    var $select = $(element);
    var idx = $select.find('option:selected').index();
    $select.find('option').slice(1, idx).remove()
}

演示:Fiddle