我有这样的事情:
<table id="table_append">
<tr class='text-center'>" +
<td>1</td>
<td class="codeverify">025</td>
<td> Data1 </td>
</tr>
<tr class='text-center'>" +
<td>2</td>
<td class="codeverify">036</td>
<td> Data2 </td>
</tr>
<tr class='text-center'>" +
<td>3</td>
<td class="codeverify">044</td>
<td> Data2 </td>
</tr>
</table>
我想检查代码是否在桌面上,所以我的javascript函数是这样的。 假设函数在表中找到代码,它将返回值true
function codevvy(code) {
$('.codeverify').each($('.codeverify'), function (index,e) {
var repo =$(e).text();
if (repo == code) {
return false;
}
else { return true;}
});
然后我在调试时从浏览器中收到此错误
jquery-2.1.1.min.js:2未捕获的TypeError:b.apply不是函数
似乎我的jquery错了,但我找不到解决方案
如何获取td中的每个值以便我可以比较它?
答案 0 :(得分:2)
除了将each
return
each
codevvy()
内的filter()
添加两次的错误语法不会返回外部函数,并且您不会返回任何内容 function codevvy(code) {
return $('.codeverify').filter( function (index,e) {
return $(this).text() === code
}).length > 0;
}
可以使用:contains
并返回找到的集合长度
function codevvy(code)
return $('.codeverify:contains(' + code + ')').length > 0;
}
您也可以使用'{{}}'
选择器。请注意,这不是绝对匹配
'{{r.Name}}'
答案 1 :(得分:1)
您对.each
的来电不需要再次选择对象,只需输入功能:
function codevvy(code) {
let result = false; // for not found
$('.codeverify').each(function (index,e) {
let repo =$(e).text();
if (repo == code) {
result = true;
return false; // no unneeded iterations after a match is found
}
});
return result;
}
您可能需要在实际比较之前对比较中的两段文本进行标准化,以确保您比较相同的案例/样式/空白等。
答案 2 :(得分:1)
试试这段代码:
function codevvy(code) {
var result = false;
$('#table_append .codeverify').each(function () {
var repo = $(this).text();
if (repo == code) {
result = true;
return false;
}
});
return result;
}
console.log(codevvy("025"))
console.log(codevvy("045"))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table_append">
<tr class='text-center'>
<td>1</td>
<td class="codeverify">025</td>
<td> Data1 </td>
</tr>
<tr class='text-center'>
<td>2</td>
<td class="codeverify">036</td>
<td> Data2 </td>
</tr>
<tr class='text-center'>
<td>3</td>
<td class="codeverify">044</td>
<td> Data2 </td>
</tr>
</table>
以上javascript上的一些要点:
您不会从each()
循环返回值。这就是我使用名为result
的var将返回的原因。 return
内的each
只会破坏它;
您可以在this
循环中使用each
,因为您在html集合中运行它。
答案 3 :(得分:-1)
试试你的每个环:
$('.codeverify').each(function (index,e) {
var repo =$(e).text();
if (repo == code) {
return false;
}
else { return true;}
});
答案 4 :(得分:-1)
试试这个:
$.each($('.codeverify'), function (index,e) {}
而不是:
$('.codeverify').each($('.codeverify'), function (index,e) {}