使用 innerhtml 显示下拉列表文本而不是值

Posted

技术标签:

【中文标题】使用 innerhtml 显示下拉列表文本而不是值【英文标题】:Display dropdown list text instead of value using innerhtml 【发布时间】:2019-07-12 10:19:36 【问题描述】:

我有一个下拉列表,其功能如下:

car_list.options[1] = new Option('Mazda', 'A_Mazda');

我将 A_Mazda 作为下拉列表的值进行区分。现在,我有一个按钮,它将在表格视图中显示下拉列表的值。我要显示的是下拉列表的文本,而不是值。函数 addRow() 是我在表格形式中显示下拉列表值的方法。至于现在,单击按钮时显示的是 A_Mazda 而不是 Mazda。请帮忙

function addRow()
	var table = document.getElementById("result-table");
	var rowCount = table.rows.length;
	var row = table.insertRow(rowCount);
	
	row.insertCell(0).innerhtml = car.value;
	row.insertCell(1).innerHTML = model.value;
	row.insertCell(2).innerHTML = '<input type="button" value="Delete" onClick="Javacsript:deleteRow(this)"/>';


function getDestination()	
 
            var model_list = document.getElementById('model');
            var car_list = document.getElementById("destination");
            var list1SelectedValue = model_list.options[model_list.selectedIndex].value;
             
            if (list1SelectedValue=='Cars') 
            
                 
                car_list.options.length=0;
                car_list.options[0] = new Option('--SELECT A CAR--', '');
                car_list.options[1] = new Option('Mazda', 'A_Mazda');
                car_list.options[2] = new Option('Toyota', 'B_Toyota');
                car_list.options[3] = new Option('Honda', 'C_Honda');
                car_list.options[4] = new Option('Hyundai', 'D_Hyundai');
            
            
            else if (list1SelectedValue=='Food') 
            
                 
                destination_list.options.length=0;
                destination_list.options[0] = new Option('--SELECT A FOOD--', '');
                destination_list.options[1] = new Option('Burger', 'A_Burger');
                destination_list.options[2] = new Option('Fries', 'B_Fries');
                destination_list.options[3] = new Option('Pasta', 'C_Pasta');
                destination_list.options[4] = new Option('Ice cream', 'D_Ice_cream');
            
<h4>MODEL</h4>
<select class="form-control"  id='model' name='model' onClick="getDestination()">
		<option value = "Cars">Cars</option>
    <option value = "Food">Food</option>
    </select>
     
    <h4>Car</h4>
    <select class="form-control"  id='destination' name='destination' onClick="getCriteria()" >
    </select>
	
  <input type= "button" id= "add" value="Add Destination" onclick= "javascript:addRow()">
			</td>
	

【问题讨论】:

onClick="Javacsript:deleteRow(this)" 看起来像一个错字(另外,最好使用 Javascript 而不是内联属性附加侦听器) 【参考方案1】:

使用选项的.text属性,而不是.value,例如

row.insertCell(0).innerText = car.options[car.selectedIndex].text

【讨论】:

【参考方案2】:

假设carmodel 代表&lt;option&gt; 元素,而不是car.valuemodel.value 尝试使用text 属性:

car.text
model.text

【讨论】:

以上是关于使用 innerhtml 显示下拉列表文本而不是值的主要内容,如果未能解决你的问题,请参考以下文章

在 ag 网格下拉列表中,如何在选择后显示名称并在保存集值而不是名称上显示。?

为啥我们不能直接在循环中使用“innerHTML”函数而不是连接文本以获得垂直书写列表?

selenium-获取下拉选择框value默认的文本,而不是下拉框所有的文本值

选择值为索引的时区下拉菜单

如何使用JS获取下拉列表框的显示值

真的有必要使用数组,在子删除后显示完整节点列表的innerHTML吗?