我需要jquery来改变所有页面中的数字.例如,我想要改变1比1,所以我尝试这样:
$("*").each(function(){
$(this).html( $(this).html().replace(1,"۱") );
})
但这也将改变css规则和属性.是否有任何技巧可以逃避css和属性?
解决方法
这不是jQuery自然适合的工作.而不是让jQuery获取所有元素的平面列表,而是自己递归遍历DOM树,搜索文本节点以执行替换.
function recursiveReplace(node) {
if (node.nodeType == 3) { // text node
node.nodeValue = node.nodeValue.replace("1","۱");
} else if (node.nodeType == 1) { // element
$(node).contents().each(function () {
recursiveReplace(this);
});
}
}
recursiveReplace(document.body);
在行动here中看到它.