我需要 jquery 来更改所有页面中的数字。例如我想将 1 更改为 1,所以我尝试了以下方法:
$("*").each(function(){
$(this).html( $(this).html().replace(1,"۱") );
})
但这也会改变 css 规则和属性。有没有什么技巧可以转义CSS和属性?
最佳答案
这不是 jQuery 自然适合的工作。不要让 jQuery 获取所有元素的平面列表,而是自己递归遍历 DOM 树,搜索文本节点来执行替换。
function recursiveReplace(node) {
if (node.nodeType === Node.TEXT_NODE) {
node.nodeValue = node.nodeValue.replace("1", "۱");
} else if (node.nodeType == Node.ELEMENT_NODE) {
$(node).contents().each(function () {
recursiveReplace(this);
});
}
}
recursiveReplace(document.body);
查看实际效果 here .
关于JQuery 更改所有元素文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494259/