如果我找到控件的方式如下,如何设置jQuery中下拉列表的索引:
$("*[id$='" + originalId + "']")
我是这样做的,因为我正在动态创建控件,并且因为在使用Web窗体时更改了id,所以我发现这是一个解决方法,可以找到一些控件。但是一旦我有了jQuery对象,我就不知道如何将所选索引设置为0(零)。
答案 0 :(得分:334)
首先 - 选择器很慢。它将扫描每个寻找id的DOM元素。如果你可以为元素分配一个类,那么它将不会受到性能影响。
$(".myselect")
要回答你的问题,有几种方法可以改变jQuery中的select元素值
// sets selected index of a select box to the option with the value "0"
$("select#elem").val('0');
// sets selected index of a select box to the option with the value ""
$("select#elem").val('');
// sets selected index to first item using the DOM
$("select#elem")[0].selectedIndex = 0;
// sets selected index to first item using jQuery (can work on multiple elements)
$("select#elem").prop('selectedIndex', 0);
答案 1 :(得分:105)
刚刚发现这个,它对我有用,我个人觉得它更容易阅读。
这将设置实际索引,就像gnarf的答案3号选项一样。
// sets selected index of a select box the actual index of 0
$("select#elem").attr('selectedIndex', 0);
这不常用,但现在做...看错误: http://dev.jquery.com/ticket/1474
根据评论中的建议使用:
$("select#elem").prop('selectedIndex', 0);
答案 2 :(得分:9)
我正在使用
$('#elem').val('xyz');
选择具有值=' xyz'
的选项元素答案 3 :(得分:9)
JQuery代码:
$("#sel_status").prop('selectedIndex',1);
Jsp代码:
Status:
<select name="sel_status"
id="sel_status">
<option value="1">-Status-</option>
<option>ALL</option>
<option>SENT</option>
<option>RECEIVED</option>
<option>DEACTIVE</option>
</select>
答案 4 :(得分:9)
我在2015年写了这个答案,由于某种原因(可能是旧版本的jQuery),其他答案都没有对我有用。我的意思是,他们更改了所选的索引,但它实际上并没有反映实际的下拉列表。
这是另一种更改索引的方法,实际上它反映在下拉列表中:
$('#mydropdown').val('first').change();
答案 5 :(得分:3)
您想要获取select元素中第一个选项的值。
$("*[id$='" + originalId + "']").val($("*[id$='" + originalId + "'] option:first").attr('value'));
答案 6 :(得分:2)
选择第二个选项
$('#your-select-box-id :nth-child(2)').prop('selected', true);
在这里,我们添加`触发器(&#39;更改&#39;)以使事件触发。
$('#your-select-box-id :nth-child(2)').prop('selected', true).trigger('change');
答案 7 :(得分:1)
$("[id$='" + originalId + "']").val("0 index value");
将其设置为0
答案 8 :(得分:0)
答案 9 :(得分:0)
这在chrome和Internet Explorer中也可以正常工作
QAbstractItemModel model;
int role = ...;
ModelRowIterator begin { model.index(0,0), role };
ModelRowIterator end {};
std::for_each(begin, end, [](const QVariant& v) { qDebug() << v; });
auto range = boost::make_range(begin, end);
boost::range::equal(range, [](const QVariant& v) { qDebug() << v; });
根据您选择的DropDown 0,1,2,3,4 ......
的位置值放置答案 10 :(得分:0)
这会起作用:
<head>
<script type="text/javascript">
function Init () {
var counter = document.getElementById ("counter");
for (var i = 1; i < 1000; i++) {
var option = new Option (i, i);
counter.options.add (option);
}
counter.focus ();
}
function OnKeyPressCounter (event, counter) {
var chCode = ('charCode' in event) ? event.charCode : event.keyCode;
if (chCode == 68 /* + */) {
if (counter.selectedIndex < counter.options.length - 1) {
counter.selectedIndex++;
}
}
if (chCode == 45 /* - */) {
if (counter.selectedIndex > 0) {
counter.selectedIndex--;
}
}
}
</script>
</head>
<body onload="Init ()">
Use the + and - keys to increase/decrease the counter.
<select id="counter" onkeypress="OnKeyPressCounter(event, this)" style="width:80px"></select>
</body>