我有一个XPath /html/body/div[1]/div/div/center[1]/table
,我希望它能让它不再可见。
我看到我可以使用document.evaluate()
,但我不确定如何隐藏它。
答案 0 :(得分:2)
如果您坚持使用XPath,对于单个节点,使用FIRST_ORDERED_NODE_TYPE
,如下所示:
var targEval = document.evaluate (
"/html/body/div[1]/div/div/center[1]/table",
document.documentElement,
null,
XPathResult.FIRST_ORDERED_NODE_TYPE,
null
);
if (targEval && targEval.singleNodeValue) {
var targNode = targEval.singleNodeValue;
// Payload code starts here.
targNode.style.display = "none";
}
但是,XPath选择器在用户脚本中非常脆弱。 {$ 3}}你最好离开using a CSS selector in most cases. 由于没有提供HTML,这里显示了 CSS-selector方法,并将该XPath转换为CSS选择器:
var targNode = document.querySelector ("body > div:nth-of-type(1) > div > div > center:nth-of-type(1) > table");
if (targNode) {
targNode.style.display = "none";
}
当然,使用jQuery更简单 :
$("body > div:first > div > div > center:first > table").hide ();
或可能:
$("body > div:first > div > div > center:first > table").first ().hide ();
如果通过AJAX添加节点,请使用this answer中的技术。