Bij*_*jan 1 javascript xpath greasemonkey tampermonkey
我有一个 XPath /html/body/div[1]/div/div/center[1]/table
,我想让它不再可见。
我看到我可以使用,document.evaluate()
但我不知道如何隐藏它。
如果您坚持使用 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";
}
Run Code Online (Sandbox Code Playgroud)
但是,XPath 选择器在用户脚本中非常脆弱。在大多数情况下,最好使用 CSS 选择器。
由于未提供 HTML,这里显示了 CSS 选择器方法,并将该 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";
}
Run Code Online (Sandbox Code Playgroud)
当然,使用 jQuery就更简单了:
$("body > div:first > div > div > center:first > table").hide ();
Run Code Online (Sandbox Code Playgroud)
或者可能:
$("body > div:first > div > div > center:first > table").first ().hide ();
Run Code Online (Sandbox Code Playgroud)
如果节点是通过 AJAX 添加的,请使用此答案中的技术。
归档时间: |
|
查看次数: |
2785 次 |
最近记录: |