Javascript 获取具有特定值的元素,使其处于选中状态
我有一个带有此禁用的select元素的表单(我使用jquery禁用了它)Javascript 获取具有特定值的元素,使其处于选中状态,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有此禁用的select元素的表单(我使用jquery禁用了它) 您并不需要jQuery来实现这一点,因此这里有一个简单的老JavaScript解决方案 声明此函数: function setOptionByValue(select, value){ var options = select.options; for(var i = 0, len = options.length; i < len; i++){ if(options[i].textC
您并不需要jQuery来实现这一点,因此这里有一个简单的老JavaScript解决方案 声明此函数:
function setOptionByValue(select, value){
var options = select.options;
for(var i = 0, len = options.length; i < len; i++){
if(options[i].textContent === value){
select.selectedIndex = i;
return true; //Return so it breaks the loop and also lets you know if the function found an option by that value
}
}
return false; //Just to let you know it didn't find any option with that value.
}
jQuery解决方案使用:
如果您想使用jQuery完成任务,请尝试以下操作
$('#ifacility').find('option:contains("Room 2")').prop('selected', true);
它通过文本查找选项并设置其选定属性。值是否更改,或者房间2将始终具有值3?@Karl AndréGagnon否,其数据来自后端。谢谢她要求jquery,然后你提供了过度膨胀的javascript。“过度膨胀的javascript”你知道这句话有多错吗?“过度膨胀的javascript”=jQuery@eg_dac提供的答案是,与使用jQuery相比,规模更小,效率更高。这可能不是OP在一天结束时使用的,但它是有用的、正确的,并且可能会教OP一些其他的东西(更不用说其他在这里绊倒的人了)。他已经在使用jquery了。。。那么,3条线路的效率如何低于11条线路呢。我真的很喜欢你们一个字都想不过去的样子哈哈哈。你实际上忘了他已经用过jquery了。我从来没有听说过
[text=something]
<代码>[]=属性选择器。文本不是属性,因此不能用作
function setOptionByValue(select, value){
var options = select.options;
for(var i = 0, len = options.length; i < len; i++){
if(options[i].textContent === value){
select.selectedIndex = i;
return true; //Return so it breaks the loop and also lets you know if the function found an option by that value
}
}
return false; //Just to let you know it didn't find any option with that value.
}
setOptionByValue(document.getElementById('ifacility'), 'Room 2');
var room2 = $('#ifacility option').filter(function() {
return $(this).text() == 'Room 2';
});
// room2.val() = '3'
$('#ifacility').val(room2.val());
$('#ifacility').find('option:contains("Room 2")').prop('selected', true);