【问题标题】:javascript jquery dropdown listbox - How to set option text at specific index (not selected!)javascript jquery 下拉列表框 - 如何在特定索引处设置选项文本(未选中!)
【发布时间】:2017-10-13 20:49:48
【问题描述】:

我的问题是,使用 javascript / jquery,“如何在不是所选索引的特定索引处更改下拉选项的值?”

我有一个值的下拉列表。用户可以选择一个选项。我有一种方法可以让用户更改所选选项的值。值改变了,一切都很好。

这是我的问题:如果用户决定取消或更改列表中的其他值而不将更改保存到数据库,我想撤消值变化。

  • 我有已更改选项的索引。
  • 我有更改选项的旧值。
  • 我有更改选项的新值。

如果用户选择了不同的选项,我不想更改新选择的选项的索引。我只想重置用户更改的选项的值。

我尝试了一种 .each 方法:

var changedTitle = $('#ddTitle').text();

$("#ddTitle option").each(function() {
  if($(this).text() == changedTitle) {
    $(this).text(savedTitle);            
  }                        
});

我喜欢循环遍历每一个的想法,但我从来没有看到第二次执行循环并且浏览器永远不会回来。

我尝试了一种 .filter 方法:

var changedTitle = $('#ddTitle').text();

$("#ddTitle option").filter(function(index) { return $(this).text() === changedTitle; }).attr('selected', 'selected');

$("#ddTitle option").filter(function() {  
    return $(this).text() === changedTitle;
}).prop('selected', true);  // changes the selected option

我得到了上面的过滤器代码,但它设置了选定的选项。

$("#ddTitle option").filter(function() {  
    return $(this).text() === changedTitle;
}).prop('text', savedTitle);  // execution never returns

我尝试在选项上使用 text 属性,但 jquery 变得非常繁忙,执行永远不会返回。

我尝试通过文本值查找,这很愚蠢,因为我知道索引:

$("#ddTitle option[value='" + theText + "']").attr('selected', 'selected');

如果这些得到一个选项,则它是第一个选项 (0) 或浏览器挂起。

有没有办法在 javascript 或使用 jquery 中以编程方式更改指定索引处的文本值?我试过的都没有用。

【问题讨论】:

    标签: javascript jquery html-select dropdown


    【解决方案1】:

    要更改第 5 个选项的值,请执行以下操作:

    $('#yourselect').children('option:eq(4)').html('your text');
    

    【讨论】:

    • 我真的认为你让我走上了正确的道路。我还在努力。
    • 事实证明用户所做的更改不会影响 html。为了获得更多帮助,我需要拿走答案检查。如果我能根据您的建议得到一些有用的东西,我会回馈给您。对不起。 :-(
    • 这个答案:如何在不是选定索引的特定索引处更改下拉选项的值?
    • 经过急需的休息和额外的思考,我想我可以在用户选择不同的选项之前使用不同的事件。谢谢。
    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多