我在 div 里面有 div。大约 3 或 4 级深我有一个 div,其中包含一个 P 标签,其中包含一个 span 标签。我需要将一个额外的类添加到一个已经存在的类更高的 div 中,并且基于我的嵌套跨度是否包含特定的字符串。
这是我的 html 代码:pastebin.com 链接
我需要检查我的嵌套 span 元素以查看它是否包含字符串“october”,如果是,则在已经具有“event-data”类的顶部 div 中添加一个额外的“October”类。
我在 div 里面有 div。大约 3 或 4 级深我有一个 div,其中包含一个 P 标签,其中包含一个 span 标签。我需要将一个额外的类添加到一个已经存在的类更高的 div 中,并且基于我的嵌套跨度是否包含特定的字符串。
这是我的 html 代码:pastebin.com 链接
我需要检查我的嵌套 span 元素以查看它是否包含字符串“october”,如果是,则在已经具有“event-data”类的顶部 div 中添加一个额外的“October”类。
如果包含您的字符串的跨度是el
,那么您可以像这样设置父类:
$(el).parents(".event_data").last().addClass("October")
这里的关键是.parents(sel)
它将返回与给定选择器匹配的所有父级,并且它们按父链上从最近到最远的顺序返回。然后,.last()
选择最后一个(父链最远的),然后addClass()
将所需的类添加到剩余的父对象。
如果您还需要帮助查找文本的跨度和测试,那么您需要就如何确定要测试的文本的跨度提供更多指导。
您对在何处查找文本的描述仍然有点模糊且不具体,但这是完成整个事情的一种方法:
$('p[id^="event_date-"]:contains(October)')
.parents(".event_data").last().addClass("October");
而且,您可以在您的 HTML 上看到它在这里工作:http: //jsfiddle.net/jfriend00/Pp8gw/
解释:
p
id 以开头的标签"event_date-"
p
标签中,它会找到文本"October"
"event_data"
"October"
到该祖先我希望,我没有忘记任何事情
var span=$("p>span");
for(var i=0;i<span.length;i++) {
if(span[i].text().indexOf("october") >= 0)) {
span[i].parents("div.event-data").addClass("October");
}
}