问题描述
I want to convert every number in the html content to Persian numerals without other effects on page elements.
For example:
<div style='color: #c2c2c2'> text number 1 <span>text number 2</span> <div> text number 3 <b>text number 4</b> <a href='#page2'>text number 5</a> </div> </div>
be converted to:
<div style='color: #c2c2c2'> text number ? <span>text number ?</span> <div> text number ? <b>text number ?</b> <a href='#page2'>text number ?</a> </div> </div>
let persian = array('?', '?', '?', '?', '?', '?', '?', '?', '?', '?'); let english = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
Thanks.
解决方案
You can use this method: (http://jsfiddle.net/A4NfG/1/)
persian={0:'?',1:'?',2:'?',3:'?',4:'?',5:'?',6:'?',7:'?',8:'?',9:'?'}; function traverse(el){ if(el.nodeType==3){ var list=el.data.match(/[0-9]/g); if(list!=null && list.length!=0){ for(var i=0;i<list.length;i++) el.data=el.data.replace(list[i],persian[list[i]]); } } for(var i=0;i<el.childNodes.length;i++){ traverse(el.childNodes[i]); } }
;