jQuery在使用Javascript生成的表中查找元素

jQuery find element within table generated using Javascript

本文关键字:查找 元素 Javascript jQuery      更新时间:2023-09-26

我有一个场景,需要在使用javascript函数创建的表中找到所有包含文本"Status:Full"的<td>

页面<head>包含为事件日历生成标记的脚本。这个脚本看起来是这样的(为了便于说明,我删除了其余的事件):

var today = new Date();
loaded('calendarEvents', 'start', today.getFullYear(), '6', '/9#20110716 Saturday 16 July 2011. Academic Only. Status: Full/10#20110730 Saturday 30 July 2011. Academic and General Training. Status: Available/11#20110813 Saturday 13 August 2011. ');

为包含我的文本的td生成的HTML如下所示:

<td class="linkbg" align="center">
<b>
<span onclick="selDate = 20110625; isDate(25,5,2011,22);return false;" title=" Saturday 25 June 2011. Academic and General Training. Status: Full" style="cursor:pointer;color:#FFFFFF">25</span>
</b>
</td>

事实证明,我必须在包含文本"状态:已满"的表中找到每个<td><b><span>,并将该<td>的背景色设置为红色。

我以为在页面加载上做这样的事情会让我找到这些<td>,但不幸的是,事实并非如此(显然这是在$(document).ready();:中

$('td span[title*="Status: Full"]').parent().addClass("fullclass");

有人能告诉我如何才能做到这一点吗?

谢谢,Tristan

:contains仅适用于元素内部的文本,而不适用于元素的属性。

因此,您需要使用基于属性的选择器。尝试$('td span[onclick*="Status: Full"]')

Status: Full内容是一个属性,而不是元素内容,因此:contains选择器无法工作。你可以做一个属性匹配:

$('td span[title*="Status: Full"]').parent().addClass("fullclass");