代码之家  ›  专栏  ›  技术社区  ›  Patricia

javascript jquery下拉列表框-如何在特定索引处设置选项文本(未选中!)

  •  0
  • Patricia  · 技术社区  · 7 年前

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

    这是我的问题: 打开 值发生变化。

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

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

    我试过了。每种方法:

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

    我喜欢遍历每一个的想法,但我从来没有看到执行第二次遍历,浏览器也再也不会回来。

    我试过了。过滤方法:

    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以编程方式更改指定索引处的文本值?我试过的都不管用。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Eric    7 年前

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

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