使用jquery查找任何字符并将其删除

时间:2013-03-25 06:18:41

标签: jquery drupal-7 find character

我在drupal有一个网站。它似乎有问题。在body标记结束之前出现一个数字9.所以我需要通过jQuery删除它。

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

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

我需要删除9.请建议。 感谢

1 个答案:

答案 0 :(得分:1)

您应该找到附加字符的原因,然后将其删除。但是,要将客户端作为临时修复:

您不想操纵整个文档的innerHTML(或.html())。相反,抓住document.body的最后一个子节点(到目前为止,jQuery可以这样做),验证它是一个文本节点(此时jQuery不足),并缩短其文本内容。 textContentinnerText都不兼容跨浏览器(though we might hope for innerText to become standard)。但是,对于文本节点,nodeValue可用:

$(document).ready(function(){
  var node = document.body.lastChild;
  if(node && node.nodeType == node.TEXT_NODE){
    node.nodeValue = node.nodeValue.replace(/9^/,"")
  }
})

请注意,九个被假定为正文中出现的 last 事物,并且后面没有隐藏的内容(空格,脚本标记,注释标记)。通过修改正则表达式可以忽略空白(左侧作为读者的练习),跳过不可见的节点可以通过迭代完成(如果根据您的特定情况量身定制则更容易;它毕竟是临时修复)。

有用的链接:

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