我在div里面有div。大约3或4级深度我有一个包含P标签的div,其中包含一个span标签。我需要在已经存在的类中使用更高级别的div添加一个额外的类,而不管是否嵌套的span包含特定的字符串。
这是我的HTML代码:pastebin.com link
我需要检查我的嵌套span元素以查看它是否包含字符串'october',如果是这样,则在已经有一个'event-data'类的top div中添加一个额外的“October”类。
答案 0 :(得分:0)
如果包含您的字符串的范围是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
"event_date-"
代码
p
标记内,找到文字"October"
"event_data"
"October"
添加到该祖先答案 1 :(得分:0)
我希望,我没有忘记任何事情
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");
}
}