1

CSS(3)显然有后代选择器,例如td em {color: red};,但没有祖先选择器。

那么,我应该怎么做而不是类似的东西td {border: 1pt solid red} em;?即,如何在某些 (X)HTML 元素的祖先上设置样式?

笔记:

  • Javascript 与解决方法无关,XPath'y 可能是。
4

1 回答 1

2

您可以等待实现 CSS4 选择器,然后执行

td! em {
    border: 1pt solid red;
}

请参阅http://dev.w3.org/csswg/selectors4/

或者...

var xpathresult = document.evaluate("//td[.//em]", 
    document, null, XPathResult.ANY_TYPE, null); 
while (e=xpathresult.iterateNext()){
    e.classList.add("border");
}

请参阅https://developer.mozilla.org/en-US/docs/DOM/document.evaluate。正常浏览器支持警告适用。

于 2013-05-15T05:40:46.637 回答