2017-10-13 102 views
0

我的问题是,使用javascript/jquery,“如何更改特定索引下拉选项的值不是选择索引?“javascript jquery dropdown listbox - 如何在特定索引处设置选项文本(未选中!)

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

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

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

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

我已经尝试了。每个方法:

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 

我尝试使用该选项文本属性,但jQuery的获取非常繁忙和执行永远不会返回。

我试着通过文本值,这是愚蠢的发现,因为我知道索引:

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

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

有没有办法改变指定的索引在JavaScript或使用jQuery的编程的文本值?我没有尝试过的作品。

回答

1

要更改第五选项的值,这样做:

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

我真的认为你中有我在正确的轨道上。我仍在尝试。 – Patricia

+0

事实证明,用户所做的更改不会影响html。为了获得更多帮助,我需要将答案检查一下。如果我可以根据你的建议得到一些结果,我会把它还给你。对不起。:-( – Patricia

+0

这个答案:你如何改变在一个特定的索引,而不是选定的索引下拉选项的价值? – Eric

相关问题