将第一个 <select> 选项设置为选中

Posted

技术标签:

【中文标题】将第一个 <select> 选项设置为选中【英文标题】:Setting first <select> option as selected 【发布时间】:2011-07-24 13:42:01 【问题描述】:

我正在尝试将几个中的第一个设置为选中

我有

<select name="id[21]" class="atributosSort">
  <option value="107">1. Sin adaptadores de video (+$45)</option>
  <option value="108">2. Mini Displayport to DVI (+$112)</option>
  <option value="109">3. Mini Displayport to VGA</option>
</select>

我试过了

jQuery(".atributosSort")[0].selectedIndex = 0;

jQuery(".atributosSort option:first").attr('selected','selected');

两者都在 How to make first option of <select > selected with jQuery? 但是当我检查 DOM 时,没有任何属性被添加到任何

我正在使用 jQuery(),因为我处于 noConflict 模式。会不会是这个问题?

当我运行两次尝试以获取所选值时,脚本控制台中没有出现任何错误

另一件可能相关的事情是我正在用这个对选项进行排序

function sortDropDownListByText() 
// Loop for each select element on the page.
jQuery("select").each(function() 

    // Keep track of the selected option.
    var selectedValue = jQuery(this).val();

    // Sort all the options by text. I could easily sort these by val.
    jQuery(this).html(jQuery("option", jQuery(this)).sort(function(a, b) 
        return a.text == b.text ? 0 : a.text < b.text ? -1 : 1
    ));

    // Select one option.
    //jQuery(this).val(selectedValue);

);


  // Use jQuery via jQuery(...)
 jQuery(document).ready(sortDropDownListByText);

我评论了 jQuery(this).val(selectedValue);因为我认为该行将某些选项设置为已选中,然后我无法覆盖它,但这没有区别。

有什么想法吗? 谢谢

【问题讨论】:

【参考方案1】:

你试过了吗:

jQuery(".atributosSort option:first-child").attr("selected", true);

?

【讨论】:

【参考方案2】:

我使用“选择一个...”作为我的第一个选项,但没有定义任何值。我发现这对我有用:

//for elements having classname, get the first option and make it selected
$('.classname').find('option:first').attr('selected','selected');

这与@NeXXeuS 发布的类似,但会为您的所有选择字段执行此操作。

【讨论】:

【参考方案3】:
jQuery(document).ready(function () 
    jQuery(".atributosSort")[0].selectedIndex = 0;
);

蜥蜴比尔 ♦

是最好的答案,它不会在选择时选择属性错误。

【讨论】:

【参考方案4】:

对于较新版本的 jQuery:

$(".atributosSort").prop("selectedIndex", 0)

【讨论】:

【参考方案5】:

你试过了吗:(在“ready”语句中的“sortDropDownListByText”后面加上括号)

// Use jQuery via jQuery(...)
 jQuery(document).ready(sortDropDownListByText(););

【讨论】:

【参考方案6】:

$(document).ready(...) 时你这样做吗?

试试这个:

jQuery(document).ready(function () 
    jQuery(".atributosSort")[0].selectedIndex = 0;
);

【讨论】:

试试这个:jQuery(documnet).ready(function()jQuery(".atributosSort")[0].selectedIndex = 0;);【参考方案7】:

您以前尝试过此代码吗?我用它来重置我在太多使用 jQuery 的项目上的下拉列表:

// Use jQuery via jQuery(...)
 $("#yourTarget").val($("#yourTarget option:first").val());

我希望这可以帮助你。

【讨论】:

以上是关于将第一个 <select> 选项设置为选中的主要内容,如果未能解决你的问题,请参考以下文章

html select 默认不选择

UIB 选项卡 - 设置第二个选项卡处于活动状态

[将选项值设置为选择文本

在创建 <select>s 的 js 循环中设置选定的 <option>

如何将第一个下拉值设为无

如何控制select下拉选项的高度