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
但第一个文本即使丢失也不会显示。
问题:
- 为什么即使只有 4 个文本,我得到的长度也是 5。最后加一个空格
- 为什么
1st qtr
的第一个文本即使存在也没有显示。 检查文本中是否存在文本
的最佳方法是什么。
最佳答案
Why do i get 5 as length in even if there are only 4 text. An extra space is being added at the last
字符串末尾包含,
。当使用 ,
拆分字符串时,将添加一个空字符串作为最后一个元素,因为在最后一个 ,
之后没有任何内容。您可以使用正则表达式删除最后一个 ,
。
Why is the first text which is 1st qtr now shown even if it is existing.
inArray
返回在字符串中找到的子字符串的索引。因此,对于第一个字符串,返回索引 0
。由于 0
是假值,if 条件的计算结果为 false 并且不执行该 block 。
更新代码
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>
What is the best to check if a text is existing in a text.
indexOf
最好检查字符串是否包含子串
var str = '1st qtr,2nd qtr,3rd qtr,4th qtr,';
var contains = str.indexOf('4th qtr') > -1;
alert('str contains 4th qtr? ' + contains);
关于javascript - 检查div文本jquery中是否存在字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32962807/