Javascript:从选项列表中提取数据

时间:2018-03-05 12:12:57

标签: javascript html casperjs

我正在尝试从php子页面获取数据。 使用javascript,我尝试使用:

Error response from daemon: Cannot kill container: 3f1xxxxx0c4: No such container: 3f1xxxxx0c4
zsh: command not found: 0aexxxxxx913
zsh: command not found: 46acxxxx75cd
zsh: command not found: 20f9xxxxx9c1
zsh: command not found: 63edxxxxc085
zsh: command not found: 6328xxxxfe4d
var items = document.querySelectorAll('option');
console.log("length : "+items.length);

但它没有返回预期的长度: 长度:0 我怎么能这样做?

最终期望是有一个包含值和项目的表

感谢

4 个答案:

答案 0 :(得分:0)

首先,不要忘记<options>往往只出现在<select>代码中。

您的代码运行正常。看看下面的片段。

&#13;
&#13;
var items = document.querySelectorAll('option');

console.log('There are ' + items.length + ' options');

items.forEach(function(option,i){
   console.log('option #' + i + '  has value ' + option.value + ' and html:' + option.innerHTML);
});
&#13;
<html>

<head>
</head>

<body>
  <select>
<option value="75">item-127 ( 120127 )</option>
<option value="74">item-163 ( 0 )</option>
<option value="94">item-139 ( 0 )</option>
<option value="89">item-135 ( 0 )</option>
<option value="369">Item-AC95 ( AC95 )</option>
<option value="63">item-159 ( 120159 )</option>
</select>
</body>

</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

理想情况下,<option>标记必须由<select>括起。以下是从选项中检索值的代码

var items = document.querySelectorAll('option');
for(i = 0; i < items.length; i++) {
       item = items[i];
       if (item.value != "") {
       
           alert(item.value);
       }
     }
<option value="75">item-127 ( 120127 )</option>
<option value="74">item-163 ( 0 )</option>
<option value="94">item-139 ( 0 )</option>
<option value="89">item-135 ( 0 )</option>
<option value="369">Item-AC95 ( AC95 )</option>
<option value="63">item-159 ( 120159 )</option>

答案 2 :(得分:0)

我不确定您是否知道但是分配变量并不输出内容,您可以使用console.log()作为示例。

&#13;
&#13;
const values = document.querySelectorAll('option');

console.log(values);
&#13;
<html>
<head>
</head>
<body>
<option value="75">item-127 ( 120127 )</option>
<option value="74">item-163 ( 0 )</option>
<option value="94">item-139 ( 0 )</option>
<option value="89">item-135 ( 0 )</option>
<option value="369">Item-AC95 ( AC95 )</option>
<option value="63">item-159 ( 120159 )</option>
</body>
</html>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

首先,您应将<option>元素包装在<select>

其次,您提供的代码为您提供了一个带有<option>的HTMLNodeList对象作为其元素。他们的值在items[0].value之下且项目本身位于items[0].innerHTMLitems[0].textContent

之下
let options = items.map((option) => {
  console.log(`Item: ${option.textContent}, value: ${option.value}`); 
})