我想根据各种图片代码的alt
文字做一个if语句。
所以我的标记就像:
<img src="image1.png" alt="1 vote, average: 3.00 out of 5">
<img src="image2.png" alt="3 votes, average: 4.00 out of 5">
<img src="image3.png" alt="5 votes, average: 5.00 out of 5">
我想要做的是在average:
后X.00
获取数字。
类似于:
$("img").each(function(){
if ($('img').attr('alt') /* .dofunctiontosplitthestring(); */ == '5.00')
{
// do something
}
});
除alt
和vote
不同之外,图片的votes
始终相同。因此,JS必须能够在'average:'
之后拆分字符串以隔离数字并根据该字符执行if语句。
答案 0 :(得分:1)
如果您的号码总是有2位小数,您可以这样做:
$("img").each(function(){
var altParts = $(this).attr('alt').split(': ');
var average = '';
if (altParts.length == 2) {
average = altParts[1].substr(0,4);
}
if (average == '5.00')
{
alert($(this).attr('src'));
}
});
答案 1 :(得分:1)
从average
获取部分number
并将该部分的数字拆分为
var data = $('img').attr('alt');
var pattern = /average\:\s*\d+\.0{2}/; //getting parts 'average: 3.00'
var matchPatt = data.match(pattern)[0];
var resArr = matchPatt.split(":"); // splitting into array [average, 3.00]
var number = resArr[1] // number is 3.00
答案 2 :(得分:0)
您可以使用regex和parseFloat完成此操作。
var stringValue = $('img').attr('alt');
var value = parseFloat(stringValue.replace(/^.*average: (.*) out.*$/, '$1'), 10);
// do what you need with value
另一种方法是进行正则表达式匹配
if ($('img').attr('alt').match(/ 5\.00 /) != null) {
// do stuff
}
第三种方法是使用正则表达式测试方法
var search = / 5\.00 /;
if ( search.test($('img').attr('alt')) ) {
// do stuff
}