var donotcountS = 'td.player:contains(S)';
$(data).find('td.two_column_layout .report').each(function (index, element) {
if ($(this).find("td.player:not("+donotcountS+")").length !== +RequiredStarters && $(this).attr("id") !== "InvalidLineup")
我正在尝试计算所有td.player单元格,除了那些子类跨越类包含特定字母的单元格。这就是我所拥有的。我设置了一个var" donotcountS" ,但我有两个问题。
我如何使var也使用真或假声明,以便我可以根据真假设置决定是否要计数?
我如何添加名为donotcountP的第二个变量,所以我也可以删除带有文本P的跨度警告,不要计算,也可以使用true / false,这样我就可以打开或者1或者其他
示例HTML
<table>
<caption><span><a></span></caption>
<tbody>
<tr><th class="player">TEXT</th><th>TEXT</th></tr>
<tr><td class="player"><a>TEXT</a></td><td>TEXT</td></tr>
<tr><td class="player"><a>TEXT</a></td><td>TEXT</td></tr>
<tr><td class="player"><a>TEXT</a></td><td>TEXT</td></tr>
<tr><td class="player"><a>TEXT</a>(<span class="warning">P</span>)</td><td>TEXT</td></tr>
<tr><td class="player"><a>DO NOT COUNT THIS TD CELL HAVING SPAN WARNING WITH "S" TEXT</a>(<span class="warning">S</span>)</td><td>TEXT</td></tr>
</tbody>
</table>
答案 0 :(得分:1)
如果您只想跳过计算包含特定文本的td
元素,您可以执行此操作。
以上小提琴使用以下功能,
$(document).ready(function () {
var count = 0;
$("td").each(function () {
var tdText = $(this).children("span.warning").text();
if(tdText != "S"){
count++;
}
});
alert(count);
});
更新1:根据我的理解,您动态生成表格,生成表格后,您需要计算不包含特定文本的td
。如果这是您想要的,那么您可以在生成表后使用上述函数,如下所示,
$.get('http://%HOST%/%YEAR%/options?L=%LEAGUEID%&O=06', function (data) {
$(data).find('td.two_column_layout .report').each(function (index, element) {
if ($(this).find("td.player").length !== +RequiredStarters && $(this).attr("id") !== "InvalidLineup") {
var target = $("#InvalidLineup").find("tbody");
$(this).find("span a").each(function () {
var className = this.className;
if (clazz[className]) {
return
}
clazz[className] = true;
target.append("<tr class='oddtablerow'><td>" + $(this)[0].outerHTML + "</td><td class='lineupalert'><a class='lineuplink' href='http://%HOST%/%YEAR%/options?LEAGUE_ID=%LEAGUEID%&O=02&%FRANCHISEID%'>Submit Valid Lineup</a></td></tr>");
});
}
});
//insert the function to count specific td here
var count = 0;
$("td").each(function () {
var tdText = $(this).children("span.warning").text();
if(tdText != "S"){
count++;
}
});
alert(count);
});
更新2:
($(this).find("td.player:not(donotcountOUT)").length
donotcountOUT是一个变量,所以我想它应该写成,
($(this).find("td.player:not("+donotcountOUT+")").length
更新3 :您可以使用多个:not()
并创建另一个名为donotCountP
的变量,并按如下方式使用它,
var donotcountS = 'td.player:contains(S)';
var donotcountP = 'td.player:contains(P)';
$(data).find('td.two_column_layout .report').each(function (index, element) {
if ($(this).find("td.player:not("+donotcountS+"):not("+donotcountS+")").length !== +RequiredStarters && $(this).attr("id") !== "InvalidLineup")