javascript - 如何在 html 中获取一组值?

标签 javascript jquery

我在 html 中有一组从 1 到 19 的值,但未排序。 所以我不知道如何在 javascript 中获取这些值。

<ol id="cities" class="example">   
   <li class="ui-state-default" value="2">city a</li>
   <li class="ui-state-default" value="8">city b</li>
   <li class="ui-state-default" value="9">city c</li>
   <li class="ui-state-default" value="12">city d</li>
   <li class="ui-state-default" value="14">city e</li>
   <li class="ui-state-default" value="16">city f </li>
   <li class="ui-state-default" value="18">Seguro g</li>
   <li class="ui-state-default" value="19">city h</li>
</ol>

然后我想收到所有值,因为我可以使用它。 变量城市 = 2,8,9,12,14,16,18,19 我尝试了某种代码来显示,但我已经删除了,因为不起作用。

最佳答案

非常简单。看看:

var values = [];
document.querySelectorAll('li').forEach(e=>values.push(e.value));
console.log(values);
<ol id="cities" class="example">   
   <li class="ui-state-default" value="2">city a</li>
   <li class="ui-state-default" value="8">city b</li>
   <li class="ui-state-default" value="9">city c</li>
   <li class="ui-state-default" value="12">city d</li>
   <li class="ui-state-default" value="14">city e</li>
   <li class="ui-state-default" value="16">city f </li>
   <li class="ui-state-default" value="18">Seguro g</li>
   <li class="ui-state-default" value="19">city h</li>
</ol>

说明:

var values = [] => 这是一个将填充值的数组。

document.querySelectorAll('li') => 这会选择所有 li元素。

forEach( => 这会循环所有选定的元素,为每个元素调用一个函数

e=>values.push(e.value) => 这是一个推送每个元素的函数 到值数组,它相当于:

 function(e) {
     values.push(e.value);
 }

您甚至可以进一步减少它:

var values = Array.from(document.querySelectorAll('li')).map(e=>e.value);
console.log(values);
<ol id="cities" class="example">   
   <li class="ui-state-default" value="2">city a</li>
   <li class="ui-state-default" value="8">city b</li>
   <li class="ui-state-default" value="9">city c</li>
   <li class="ui-state-default" value="12">city d</li>
   <li class="ui-state-default" value="14">city e</li>
   <li class="ui-state-default" value="16">city f </li>
   <li class="ui-state-default" value="18">Seguro g</li>
   <li class="ui-state-default" value="19">city h</li>
</ol>

如果您想要 jQuery 版本,只需用 document.querySelectorAll 替换 $。在这种情况下,您不需要 Array.from(因为 jQuery 结果对象已经有 map 方法了。

编辑

根据您的评论,只需替换 e=>values.push(e.value)通过e=>{ if (e.value) values.push(e.value); }并且您将从结果数组中排除 0 值。

关于javascript - 如何在 html 中获取一组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55691752/

相关文章:

php - 根据 WooCommerce 中的自定义结帐单选按钮和文本字段设置动态费用

javascript - 定位用户点击的特定链接

javascript - 按照端点请求的预期格式化数据集

javascript - Javascript 中的高阶函数

javascript - 检查字符串/数字类型的字段是否为空

javascript - 在简短的内联事件中,是否可以从一个范围输入元素滑动两个范围输入元素?

javascript - KendoUI 网格数据源到 json

JavaScript : how to change "this" scope on an event

jquery - 动态包含 cordova.js 文件在 Windows Phone 7 中不起作用?

jquery - 使用 jScrollPane,拖动 block 不会转到滚动条的底部