Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 从开发人员工具中的选择元素打印选项列表_Javascript_Developer Tools - Fatal编程技术网

Javascript 从开发人员工具中的选择元素打印选项列表

Javascript 从开发人员工具中的选择元素打印选项列表,javascript,developer-tools,Javascript,Developer Tools,在Chrome或Firefox的开发者工具控制台中,我试图从select元素中提取最后一个值,但我在其他地方看到的各种答案都是几年前的,似乎对我不起作用 以以下为例: <select id="states"> <option value="AL">Alabama</option> <option value="AK">Alaska</option> <option value="AZ">Arizona</o

在Chrome或Firefox的开发者工具控制台中,我试图从select元素中提取最后一个值,但我在其他地方看到的各种答案都是几年前的,似乎对我不起作用

以以下为例:

<select id="states">
  <option value="AL">Alabama</option>
  <option value="AK">Alaska</option>
  <option value="AZ">Arizona</option>
  <option value="AR">Arkansas</option>
  <option value="CA">California</option>
</select>
值返回一个ArrayIterator。但我不知道该怎么办


我希望返回的是每个选项的值和每个选项的文本。

如果不确定数据的用途,可以将它们推送到数组或对象中?下面是一个获取数组数组的示例,每个子数组包含[val,text]:

var states = [];
$('#states option').each(function(){
    states.push([$(this).val(),$(this).text() ]);
});
console.log(states);
编辑:试试这个,不使用jQuery,只会为您注销信息,但如果您愿意,可以将其推送到上面的空数组中

var states = $$('#states > option');
for (var i = 0; i < states.length; i++) {
    console.log(states[i].value, states[i].innerHTML);
}
您可以尝试以下方法:

const statesEl = document.getElementById('states');
const options = statesEl.getElementsByTagName('option');

const optionValues = Array.prototype.map.call(options, function(optionEl) {
  return {
    value: optionEl.getAttribute('value'),
    text: optionEl.textContent
  };
});
然后可以使用optionValues数组

const statesEl=document.getElementById'states'; const options=statesEl.getElementsByTagName'option'; const optionValues=Array.prototype.map.calloptions,functionoptionEl{ 返回{ 值:optionEl.getAttribute'value', text:optionEl.textContent }; }; console.logoptionValues; 阿拉巴马州 阿拉斯加州 亚利桑那州 阿肯色州 加利福尼亚
您可以获得如下值:

 var states = $('#states > option');
 states.each(function(){ 
    console.log(this.value);
    console.log(this.text);
 }); 

您可以通过以下方式完成此操作:

$('#states > option').each(function (){ 
    console.log(this.value, this.text);
});

谢谢大家的帮助。每一个答案都让我接近我的答案。出于某种原因,每一个都不适合我,但map确实适合我

以下是我的答案:

var states = $$('#states option')
states.map(function(state) {
  console.log(state.value, state.text);
});

当我尝试这样做时,我得到:uncaughttypeerror:$$..每个都不是一个函数…您使用的jQuery版本是什么?Chrome版本49.0.2623.112附带的任何版本。也许我不应该特别指定JQuery,但我在Chrome的开发工具控制台中。查看我上面编辑的帖子,JQuery不是Chrome自带的,你只是在使用Chrome的选择器API。谢谢!成功了。当然,在states上使用map函数也可以,正如我发现的那样。如果您不使用es6,您可以在代码中使用var代替const,它的工作原理应该是一样的:-
var states = $$('#states option')
states.map(function(state) {
  console.log(state.value, state.text);
});