检查title
是否已经存在。有没有更短的方法?像这样:
if(test.exists.inside('.title'){...
var x = 0;
var test = $('#test').text();
$('.title').each(function(){
if($(this).text() == test){x = 1;}
});
if(x == 1){console.log('exists');}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title'>lorem</div>
<div class='title'>ipsum</div>
<div class='title'>lorema</div>
<div class='title'>ipsuma</div>
<div id='test'>lorem</div>
答案 0 :(得分:1)
许多方法:contains
,filter()
与indexOf()
和filter()
与text
等于test
。您正在尝试
var x = 0;
var test = $('#test').text();
var Exists = $('.title:contains("'+test+'")').length;
console.log('Yes '+Exists+ ' title with text '+test);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title'>lorem</div>
<div class='title'>ipsum</div>
<div class='title'>lorema</div>
<div class='title'>ipsuma</div>
<div id='test'>lorem</div>
您也可以使用检查包含文本的检查
$('.title:contains("'+test+'")').length > 0
或 进行精确文本检查
$('.title').filter(function(){
return $(this).text().trim() == test;
}).length > 0
注意::
:contains
和.indexOf
使用$(this).text().trim() == test;
搜索包含不完全是文本的文本。 将返回确切的文本元素
答案 1 :(得分:1)
如果您只是在寻找 short 代码,则一种选择是调用nums[i]
,而不是将i
的结果存储在变量中,而是调用它每次保存键入的字符:
Array.prototype.some
.text()
就个人而言,我宁愿可读性胜于代码长度:
if ([].some.call($('.title'), d => $(d).text() === $('#test').text())) {
console.log('exists');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='title'>lorem</div>
<div class='title'>ipsum</div>
<div class='title'>lorema</div>
<div class='title'>ipsuma</div>
<div id='test'>lorem</div>