0

我在drupal中有一个网站。它似乎有问题。在body标签的末尾出现一个数字9。所以我需要通过jQuery删除它。

我知道 jQuery 中有 find() 方法,但它只找到元素而不是字符。我需要找到字符并将其删除。它不属于body标签以外的任何元素,因此我无法选择围绕它的元素并将其删除。

<body>all the other site elements....9</body>

我需要删除那个 9。请提出建议。谢谢

4

1 回答 1

1

您应该找到附加字符的原因,并将其删除。但是,要在客户端进行临时修复:

您不想操纵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

于 2013-03-25T08:24:47.593 回答