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

时间:2011-03-28 14:58:45

标签: jquery select

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

我有

<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);因为我认为那条线正在设置一些选项,然后我不能覆盖它,但这没有区别。

有什么想法吗? 感谢

7 个答案:

答案 0 :(得分:24)

你试过了吗?

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

对于更新版本的jQuery:

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

答案 3 :(得分:0)

你在$(document).ready(...)时做到了吗?

试试这个:

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

答案 4 :(得分:0)

您是否尝试过:(在“ready”语句中将“sortDropDownListByText”后面的括号括起来)

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

答案 5 :(得分:0)

jQuery(document).ready(function () {
    jQuery(".atributosSort")[0].selectedIndex = 0;
});
比尔蜥蜴♦

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

答案 6 :(得分:0)

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

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

我希望这可以帮到你。