我在drupal中有一个网站。它似乎有问题。在body标签的末尾出现一个数字9。所以我需要通过jQuery删除它。
我知道 jQuery 中有 find() 方法,但它只找到元素而不是字符。我需要找到字符并将其删除。它不属于body标签以外的任何元素,因此我无法选择围绕它的元素并将其删除。
<body>all the other site elements....9</body>
我需要删除那个 9。请提出建议。谢谢
您应该找到附加字符的原因,并将其删除。但是,要在客户端进行临时修复:
您不想操纵innerHTML
(或.html()
)整个文档。document.body
取而代之的是,抓住(到目前为止,jQuery 可以做到)的最后一个子节点,验证它是一个文本节点(jQuery 在这一点上做不到),并稍微缩短它的文本内容。textContent
两者都不innerText
是跨浏览器兼容的(尽管我们可能希望innerText
成为标准)。但是,对于文本节点,nodeValue
可用:
$(document).ready(function(){
var node = document.body.lastChild;
if(node && node.nodeType == node.TEXT_NODE){
node.nodeValue = node.nodeValue.replace(/9^/,"")
}
})
请注意,假设九是出现在正文中的最后一件事,并且后面没有不可见的内容(空格、脚本标签、注释标签)。可以通过修改正则表达式来忽略空格(留给读者作为练习),并且可以通过迭代来跳过不可见的节点(如果根据您的特定情况定制更容易;毕竟这是一个临时修复)。
有用的链接:
https://developer.mozilla.org/en-US/docs/DOM/Node.lastChild
https://developer.mozilla.org/en-US/docs/DOM/Node.nodeType
https://developer.mozilla。 org/en-US/docs/DOM/Node.nodeValue
https://developer.mozilla.org/en-US/docs/DOM/Node.previousSibling