Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用纯JS获取数据列表中选定项的值?_Javascript - Fatal编程技术网

Javascript 如何使用纯JS获取数据列表中选定项的值?

Javascript 如何使用纯JS获取数据列表中选定项的值?,javascript,Javascript,我有一个数据列表如下: <input data-row-id="1" id="assignee[1]" name="assignment[1][assignee]" class="assignee" list="transcribers" autocomplete="off" value="" onchange="showEditing(this);" data-id-proofinglevel="1" data-transcriber-id="1361"> <datalist

我有一个数据列表如下:

<input data-row-id="1" id="assignee[1]" name="assignment[1][assignee]" class="assignee" list="transcribers" autocomplete="off" value="" onchange="showEditing(this);" data-id-proofinglevel="1" data-transcriber-id="1361">
<datalist id="transcribers">
    <option value="" data-id="0" data-id-proofinglevel=""></option>
    <option value="Amy" data-id="674" data-id-proofinglevel="1"></option>
    <option value="Jack" data-id="113" data-id-proofinglevel="2"></option>
</datalist>
但它带来了错误的号码。如果我尝试

let list = document.getElementById('transcribers');
let proofingLevel = list.options[list.selectedIndex].getAttribute('data-id-proofinglevel');`
我没有定义

TIA。

元素没有
selectedIndex
属性

据我所知,您可以从
输入中获取值,然后找到带有该值的
选项,如下所示:

功能显示编辑(输入){
//从输入中获取值
var值=输入值;
//从“datalist”中获取匹配的“option”元素(即
//可通过“input.list”访问)
var option=Array.prototype.find.call(input.list.options,函数(option){
返回选项。值===值;
});
//获取其“数据id”属性值
log(option.getAttribute(“数据id”);
}

使用javascript获取数据列表值

function showEditing(input) {
  var datalist = "";
  var list = document.getElementById('transcribers').children;
  for(var i = 0; i<list.length; i++){
    var data = list[i];
    datalist = data.getAttribute("data-id");
    console.log(datalist);
  }
}
功能显示编辑(输入){
var datalist=“”;
var list=document.getElementById(‘转录者’).children;

对于(var i=0;i根据您的代码,您有多少组输入/数据列表?一个页面上只能有一个唯一的id,因此如果您有多个id为=“transcribers”的数据列表它不能正常工作。你也应该考虑对输入id使用数据属性。@Andy,还有其他数据列表,但只有一个具有转录器id。这是我正在使用的现有代码,因此如果不需要,我不想更改太多。输入id应该使用什么?
function showEditing(input) {
  var datalist = "";
  var list = document.getElementById('transcribers').children;
  for(var i = 0; i<list.length; i++){
    var data = list[i];
    datalist = data.getAttribute("data-id");
    console.log(datalist);
  }
}