用JS解析两个HTML字符串,并将其中一个转换为Int
Parse two HTML String with JS - and convert one to Int
我目前已经在解析第一个字符串,一切正常:
var links = document.getElementsByTagName("a");
var element;
function search() {
for (var i = 0; i < links.length; i++) {
element = links[i];
var price = parseInt(element);
if (element.href.indexOf("http://www.myurl.com") == 0) {
//program goes here
}
}
}
但是,每个超链接(产品)都有另一个带价格的字符串(在同一个div元素中)。这看起来像这样:
<span class="price_table_value">
Pricetag:<br>
<span style="color:white">239,--€ </span>
</span>
我也想以某种方式解析它,并使用parseInt()从中生成一个Integer
我已经考虑了一个小时,找不到一个好的解决方案(我还在开始学习JS)。有什么帮助/想法吗?
你可以试试这个。。。
function search() {
for (var i = 0; i < links.length; i++) {
element = links[i];
var price =parseInt($(".price_table_value").value);
}
}
没有jQuery的其他示例:
var priceHolder = Array.prototype.slice.call(document.querySelectorAll(".price_table_value span"));
priceHolder.forEach(function(item) {
var price = /([0-9]+[.0-9]?)/.test(item.innerHTML) ? parseFloat(RegExp.$1) : 0;
console.log(price);
});
以下是工作jsfiddle:http://jsfiddle.net/zono/9gL1vw0e/9/
试着用这种小提琴演奏吗?
基本上,这应该进入循环体,但用i
替换[0]
,并添加所需的逻辑:
var rawPrice = $(element).children('.price_table_value').children('span').text();
var price = parseFloat(rawPrice);
当然,只有当你100%确定价格格式将以价格值开始时才能这样做(正如金刚所注意到的那样,parseFloat
会修剪数字后面的任何内容)。此外,您可能希望将其封装在try/catch块中(最好在解析时始终这样做)。
请注意,通常情况下,您可能应该从某种API中获取此类值,而不仅仅是从这样的DOM元素中获取这些值,因此请确保这就是您想要做的
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- JavaScript中的正则表达式:隔离一个int值
- 用JS解析两个HTML字符串,并将其中一个转换为Int
- 将一个大数字字符串转换为int
- String.charAt() 在给定一个无法解析为 int 的字符串的情况下返回什么
- 使用ajax javascript传递一个int数组给MVC控制器
- Regexp用于检查输入是否仅为整数(int),以及检查另一个输入是否仅为带有2位小数的数字
- 如何测试一个值是字符串还是int
- 连接一个字符串和一个int值,同时给一个
- 在Javascript中为国际象棋游戏创建一个2D对象数组和int对象数组
- 如何在javascript中从一个数组和一个int文本的json中检索值