Javascript 选择时更改所选文本

Javascript 选择时更改所选文本,javascript,jquery,html,Javascript,Jquery,Html,如何使用jQuery更改选择框中的选定文本 <select> <optgroup label="Name"> <option>John</option> <option>Mike</option> </optgroup> </select> 约翰 迈克 当你选择约翰的时候。选择框将显示“姓名:John”。不要只说“约翰”。试试这个: $(docu

如何使用jQuery更改选择框中的选定文本

<select>
    <optgroup label="Name">
        <option>John</option>
        <option>Mike</option>
    </optgroup> 
</select>

约翰
迈克
当你选择约翰的时候。选择框将显示“姓名:John”。不要只说“约翰”。

试试这个:

$(document).ready(function() {
    $('#name-select').change(function() {
        var selectedItem = $('#name-select option:selected');
        var oldValue = selectedItem.text();
        var newValue = 'Name: ' + oldValue;
        selectedItem.text(newValue);
    });
});
您需要更新select选项以给它一个ID,不过:

<select id="name-select">
    <optgroup label="Name">
        <option>John</option>
        <option>Mike</option>
    </optgroup> 
</select>

约翰
迈克
下面是JSFIDLE演示:

试试这个:

$(document).ready(function() {
    $('#name-select').change(function() {
        var selectedItem = $('#name-select option:selected');
        var oldValue = selectedItem.text();
        var newValue = 'Name: ' + oldValue;
        selectedItem.text(newValue);
    });
});
您需要更新select选项以给它一个ID,不过:

<select id="name-select">
    <optgroup label="Name">
        <option>John</option>
        <option>Mike</option>
    </optgroup> 
</select>

约翰
迈克

这里是jsFiddle演示:

如果向选项添加值属性,则可以使用类似的方法(并且需要添加值属性,否则如果有人选择一个值,然后选择另一个值,则会丢失该值)


如果向选项添加值属性,则可以使用类似的内容(并且需要添加值属性,否则,如果有人选择一个值,然后选择另一个值,则会丢失该值)

html:

请参阅:

html:



请参阅:

您可以执行类似Name:John的操作来实现这一点。@tiagolt-但OP只希望菜单选项在选中后更改。但是,这样会显示一个显示“Name:John”的选项,不是吗?我只想在他们选择约翰时显示出来。你可以做一些像Name:John这样的事情来实现这一点。@tiagolt-但OP只希望菜单选项在被选择后改变。但是,这样会显示一个写着“Name:John”的选项,不是吗?我只想在他们选择John时显示该选项。当然,一旦不再为任何实际应用选择该选项,您可能会希望更新该选项以删除“Name:”。是的,我可以使用此选项。只要想办法像@Oren所说的那样重新更改它。当然,一旦不再为任何实际应用选择该选项,您可能会想更新该选项以删除“Name:”。是的,我可以处理这个问题。只要想办法把它改回去,就像@Oren said.hmm那样。也许可以做一些像var oldList=$(“select”).html()这样的事情?隐马尔可夫模型。。谢谢你的想法。嗯……也许可以做一些类似的事情,比如,var oldList=$(“select”).html()?隐马尔可夫模型。。谢谢你的建议。对不起,错过了“#”节目。现在试试:)啊,应该仔细看看。这离我想要的要近得多。除了单击下拉列表时,您会看到“name:John”作为一个选项。现在就把这个换成答案。你好。这真让我有点困惑。你能再解释一下答案吗?它是如何工作的。特别是这一行:
oldv&&old.html…
oldv&&old.html。。。有防止错误的方法。第一次触发事件时,没有以“name:”开头的选项,因此没有可替换的内容。&&右侧的代码仅在oldv有值时执行。@herotwist-试图更新它以使其适用于两个或多个类别。我好像被卡住了。还是我应该再问一个问题?对不起,错过了“#”关。现在试试:)啊,应该仔细看看。这离我想要的要近得多。除了单击下拉列表时,您会看到“name:John”作为一个选项。现在就把这个换成答案。你好。这真让我有点困惑。你能再解释一下答案吗?它是如何工作的。特别是这一行:
oldv&&old.html…
oldv&&old.html。。。有防止错误的方法。第一次触发事件时,没有以“name:”开头的选项,因此没有可替换的内容。&&右侧的代码仅在oldv有值时执行。@herotwist-试图更新它以使其适用于两个或多个类别。我好像被卡住了。还是我应该再问一个问题?
$("#myselect").change(function (event) {
    var o = $("#myselect option:selected")
    , v=o.text()
    , old = $("#myselect option:contains('name')")
    , oldv = old.html();

    oldv && old.html(oldv.replace('name: ',''));
    o.text('name: ' + v);
});