2015-10-06 68 views
2

檢查如果一個字符串在一個div文本的jQuery

var qtr = $('div').text(); 
 
var qtr1 = qtr.split(',') 
 
console.log(qtr1.length) 
 

 
for (var i = 0; i < qtr1.length; i++) { 
 
    console.log(qtr1[i]); 
 
} 
 
console.log(qtr1); 
 
if ($.inArray('1st qtr', qtr1)) { 
 
    alert('1st'); 
 
} 
 
if ($.inArray('2nd qtr', qtr1)) { 
 
    alert('2nd'); 
 
} 
 
if ($.inArray('3rd qtr', qtr1)) { 
 
    alert('3rd'); 
 
} 
 
if ($.inArray('4th qtr', qtr1)) { 
 
    alert('4th'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div>1st qtr,2nd qtr,3rd qtr,4th qtr,</div>

存在我與它的文字我要檢查,如果一個特定的文本是在div一個div。我嘗試拆分div文本並檢查$.inArray,但是即使第一個文本丟失,也不會顯示第一個文本。

問題:

  1. 爲什麼我得到5作爲長度,即使只有4個文本。最後添加額外空間
  2. 爲什麼1st qtr的第一個文本即使存在也不顯示。
  3. 什麼是check if a text is existing in a text的最佳選擇。
+0

如果你想突出你可以使用https://github.com/julmot/jmHighlight關鍵字 – dude

+0

@julmot我不想高亮文本我會用它作爲參數用於其他目的。 – guradio

+2

您在文字結尾處有一個逗號。這就是長度爲5的原因 – shemy

回答

5

爲什麼即使只有4個文本,長度爲5。在最後添加額外空間

該字符串包含最後的,。當使用,分割字符串時,由於在最後一個,之後沒有任何內容,所以將一個空字符串添加爲最後一個元素。你可以使用正則表達式去除最後的,

爲什麼現在顯示的是第一個qtr的第一個文本,即使它已經存在。

inArray返回在字符串中找到的子字符串的索引。因此,返回索引0的第一個字符串。由於0是falsy值,因此if條件評估爲false並且該塊未執行。

更新的代碼

var qtr = $('div').text().replace(/,$/, ''); 
 
var qtr1 = qtr.split(','); 
 

 
console.log(qtr1.length) 
 

 
if ($.inArray('1st qtr', qtr1) !== -1) { 
 
    alert('1st'); 
 
} 
 
if ($.inArray('2nd qtr', qtr1) !== -1) { 
 
    alert('2nd'); 
 
} 
 
if ($.inArray('3rd qtr', qtr1) !== -1) { 
 
    alert('3rd'); 
 
} 
 
if ($.inArray('4th qtr', qtr1) !== -1) { 
 
    alert('4th'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div>1st qtr,2nd qtr,3rd qtr,4th qtr,</div>

什麼是最好的檢查,如果一個文本在文本現有的。

indexOf是最好的檢查如果字符串包含一個子

var str = '1st qtr,2nd qtr,3rd qtr,4th qtr,'; 
 

 
var contains = str.indexOf('4th qtr') > -1; 
 

 
alert('str contains 4th qtr? ' + contains);

+0

爲什麼在條件下加-1?即使它存在,也不顯示第4個,因爲所有文本都存在,所以我需要顯示所有文本。 – guradio

+0

最後一個文本未顯示。請看看 – guradio

+0

@Pekka請檢查更新後的答案 – Tushar

相關問題