jQuery - 如何按样式匹配nearest()元素?

时间:2012-08-27 13:29:32

标签: jquery jquery-selectors

我成功设法使用closest()http://api.jquery.com/closest/)按标记名称查找最匹配的元素。它基本上通过DOM树并返回元素(如果找到)或false:

if(jQuery(".current_element").closest("p").length){ do something... }
//if above is TRUE then .current_element is nested within at least 1 "p"

现在,我只是在 任何标记 (或者更确切地说是与元素最接近的标记 - 生效的标记)之间尝试返回TRUE {{ 1}}已应用。我该怎么做?

4 个答案:

答案 0 :(得分:1)

应该有效:

if(jQuery(".current_element").closest("p").length && jQuery(".current_element").closest("p").css("text-align") == "center" ){
  do something...
}

答案 1 :(得分:1)

如果您确定'text-align:center'确实是内联样式,那么您可以在调用nearest()时将其直接添加到选择器,例如:

jQuery(".current_element").closest("p[style*='text-align:center']") ...

这将在style属性的任何位置找到包含'text-align:center'的祖先p元素。

答案 2 :(得分:0)

最佳做法是让一个类应用text-align: center;,而不是轻松选择它。

否则你可以进行基本的字符串搜索,但要使其工作,它必须是确切的字符串:

if ($('.current').closest('p').attr('style')=='text-align:center;')){ ... }

答案 3 :(得分:0)

jQuery('.curr').closest("[style*='text-align:center']").length ...