Javascript获取元素的值和位置,并将结果保存在对象数组中
javascript get element value and its position, and save results in object array
我有一个类似于下面的标记(注意:span是可选的子元素):
<li class="prices">
11.11
<span>1.11</span>
</li>
<li class="prices">
22.22
</li>
<li class="prices">
33.33
<span>3.33</span>
</li>
<li class="prices">
44.44
</li>
<li class="prices">
55.55
<span>5.55</span>
</li>
我想返回跨度内的价格列表及其在对象数组中的位置,所以我得到类似的东西:{pos: 0,价格,1.11},{pos: 2,价格,3.33},{pos: 4,价格,5.55}JS代码是怎么做的?:)
假设您有一个容器元素,其中包含所有的li。价格元素:
var container = document.getElementById("container");
var arr = [];
for (var pos = 0; pos < container.children.length; pos++) {
var li = container.children[pos];
var spans = li.getElementsByTagName("span");
var price = spans.length > 0 ? spans[0].innerHTML : "";
arr.push({pos: pos, price: price});
}
将价格存储为字符串,如果li元素中没有span元素,则使用空字符串。
至少需要XPath 2.0才能做到这一点。
要获得您所建议的字符串表示,例如使用
string-join(
for $li at $position in //li
return concat("{ pos: ", $position, ", price: ", $li/span/data(), " }")[$li/span]
, ', ')
如果你喜欢数组,你可以返回一个序列中的所有内容,并在JavaScript中从中读取奇数/偶数对:
for $li at $position in //li
return ($position, $li/span/data())[$li/span]
相关文章:
- 如何将解析云代码的query.count结果保存在变量中
- JQuery Deferred Ajax,将结果保存在调用对象中
- 将表单输入保存到txt,弹出结果,不更改页面
- CKEDITOR在使用AJAX保存时无法发布结果
- jQuery延迟了链接保存,统一结果
- 读取一个本地文件,编码为base64,我想给用户一个将结果保存到文件的选项
- 如何在ruby on rails中保存和发布Webgl中的JS代码结果
- Javascript:将 AJAX 结果保存为 Class 变量
- 在谷歌地图上创建一个多边形,并使用MVC将结果保存到数据库中
- PHP 如何将 php 表结果保存到.PDF文件中
- 谷歌地图(它没有将结果显示到我的输入窗格中以保存到我的数据库中)
- 如何在页面之间保存 AJAX 查询的结果
- 如何保存投票结果,并在页面刷新时不还原
- 如何用逗号将测验结果保存到数据库中
- 如果jQuery AJAX调用变量,则保存结果
- 联系人保存结果不显示在Javascript中
- JavaScript Ajax保存结果
- jQuery getJSON保存结果到变量
- 对HTML应用DOM操作并保存结果
- PHP和MySQL倒计时和更新数据库在每一秒和在过期保存结果在数据库