javascript - jQuery td:包含
问题描述
所以在工作中,我必须浏览一个包含数千个用户的列表,然后选择一个我需要删除的复选框。长话短说,这是一个缓慢的过程。为了让事情变得更快,我使用控制台中的开发人员工具使这个脚本在 chrome 中运行。
var usernames = ["jimmy123"];
for(var i=0;i<usernames.length;i++)
{
jQuery("td:containsExact("+usernames[i]")").find('[type=checkbox]').parent().attr('checked', true).css("background-color", "red");
}
var count = jQuery("[type='checkbox']:checked").length;
alert("Everything Returned Okay!");
alert(usernames.length);
alert(count + " Checkboxes Checked!");
问题是,假设一个用户创建了 3,因为他们忘记了他们的登录名“并不少见”,他们的用户名是:jimmy123 jimmy1234 jimmy12345
如果我只需要选中 jimmy123 旁边的框进行删除,我的脚本会选择所有 3 个,因为它们的用户名几乎相同。我尝试了一些过滤器,但结果是一样的。
解决方案
您可以filter()
在此处使用函数来匹配中的确切文本,td
然后标记选中的复选框。请参阅下面的脚本,您没有提供,HTML
所以我添加了一个td
包含用户名和复选框的示例表,您应该相应地更新脚本
$(function($) {
var usernames = ["jimmy123", "omer"];
for (var i = 0; i < usernames.length; i++) {
$("tr>td").filter(function() {
return $(this).text() == usernames[i]
}).find('[type=checkbox]').attr('checked', true).css("background-color", "red");
}
var count = jQuery("[type='checkbox']:checked").length;
console.log("Everything Returned Okay!");
console.log("usernames.length" + usernames.length, usernames);
console.log(count + " Checkboxes Checked!");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="checkbox">omer</td>
<td><input type="checkbox">omer123</td>
<td><input type="checkbox">omer6565</td>
<td><input type="checkbox">omer63645</td>
<td><input type="checkbox">omer021</td>
<td><input type="checkbox">omer521</td>
<td><input type="checkbox">jimmy123</td>
</tr>
</table>
EDIT
id
您可以为您的table
发言分配一个my-table
,然后将上面代码中的选择器从
$("tr>td").filter(function() {
到以下
$("#my-table tr>td").filter(function() {
当您HTML
为正在使用脚本的用户列表添加 时,可能会建议确切的选择器。
EDIT2
根据你的 html 它应该是
$(function($) {
var usernames = ["jimmy123", "omer"];
for (var i = 0; i < usernames.length; i++) {
$("#listContainer_datatable tr td").filter(function() {
return $(this).text() == usernames[i]
}).find('[type=checkbox]').attr('checked', true).css("background-color", "red");
}
var count = jQuery("[type='checkbox']:checked").length;
console.log("Everything Returned Okay!");
console.log("usernames.length" + usernames.length, usernames);
console.log(count + " Checkboxes Checked!");
});
推荐阅读
- javascript - 如何在不刷新页面的情况下将表单的数据提交给另一个函数?
- amazon-web-services - 在 Windows Server EC2 上运行 userdata 脚本的进程的名称是什么?
- xml - Schematron: Test that a string matches an ID from a list of available IDs
- python - Django 在电子商务应用程序中扩展用户模型
- git - 为什么 git show filename 显示差异?
- python - 神经网络做出的预测不正确
- javascript - 是否可以将“返回承诺”的函数作为道具传递给另一个组件
- sql-server - 在 T-SQL 中解析嵌套的 XML 需要单行中的父项和子项
- reactjs - 如何从文件路径中获取字符串?
- python - 从 Pandas 输出中删除行数