2014-04-03 25 views
0

我想根據各種圖像標籤的alt文本做if語句。 所以我的標記是這樣的:在js中拆分字符串並詢問是否基於特定字母

<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將永遠只是votevotes變化相同。所以在JS中必須有可能在'average:'之後拆分字符串以隔離數字,並根據該語句執行if語句。

回答

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')); 
    } 
}); 

Example

+1

沒錯這就是它!謝謝! – supersize

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 
} 
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 

DEMO