Javascript 根据元素的内容及其祖先的内容确定其目标
请看一看,让我知道如何将Javascript 根据元素的内容及其祖先的内容确定其目标,javascript,jquery,Javascript,Jquery,请看一看,让我知道如何将.today类添加到中,该类的值为天,父类的值为月 var month = "October"; var day = 16; 我已经尝试了.find()作为: $("thead tr").find("th").html(month).addClass('today'); 但这只是将月份添加到所有的thead tr中,如下所示: $("th:contains("+month+")").parents("table").find("td:contains("+day+")
.today
类添加到
中,该类的值为天
,父类的值为月
var month = "October";
var day = 16;
我已经尝试了.find()
作为:
$("thead tr").find("th").html(month).addClass('today');
但这只是将月份添加到所有的thead tr
中,如下所示:
$("th:contains("+month+")").parents("table").find("td:contains("+day+")").addClass("today");
我们找到包含月份的
,获取它所属的表,然后搜索包含日期的
使用
:以这种方式包含:
$("table:contains(" + month + ")")
.find("td:contains(" + day + ")")
.addClass('today');
var month=“十月”;
var日=16;
$(“表:包含(“+month+”)).find(“td:contains(“+day+”)).addClass(“今天”)代码>
表格{
背景:灰色;
}
.今天{
背景:黄色;
}
二月
15
17
16
18
十月
15
17
16
18
前进
15
17
16
18
也许
15
17
16
18
在这种情况下,必须使用“:contains()”和“过滤器()”选择器
使用“filter()”可以显式检查字符串是否与搜索词完全相同,而不允许返回包含搜索词的所有字符串
$("table:contains(" + month + ")").find("td").filter(function () {
return $(this).text() === day.toString()
}).addClass('today');
此函数将查找包含“month”值的表,然后查询该表中明确包含“day”值的“td”选择器,以便将类“今日”添加到该表中
示例:
参考资料:
参考:一种可能的解决方案是使用此方法查找单元格的值,然后与日期进行比较,并为该单元格设置类别。在元素上添加ID可以让生活更轻松。对于一行解决方案,请查看我的答案谢谢香蕉,但Inoica在他评论中添加的最后一个注释是正确的,是的,他绝对是:)嗨,爱奥尼亚,谢谢你的评论,你的使用逻辑是100%正确的,但我不知道它在这里对我的演示不起作用:@suffi Good catch,return
在filter
回调中丢失。请参阅和更新的答案。感谢您的ping.:-)