本文提供一种方法,可以遍历文件将符合条件的某种标签替换成另一种标签,并且能够继承原来标签的所有属性。
在这个例子当中,我们使用jQuery的选择器,遍历从外部载入的一个html文件,将其中含有特殊属性"type"的所有<span>
标签替换成<a>
标签,替换之后还要继承原来<span>
标签带有的包括"type"之内的所有其他属性。 需要注意的是,jQuery会对超文本文档进行一定程度的预处理,因此可能造成原始文件格式发生改变,导致生成文件和原始文件比对的困难。 这个方法可以打包放到node.js服务器上应用,当然,我们也可以采用比如C++等其他语言通过字符串操作获得更好的结果。
<!-- lang: js -->
$('#content').load('123.htm', function () {
var count1 = 0;
var count2 = 0;
$('span').each(function () {
count1 = count1 + 1;
if ($(this).attr('type') == 'showif') {
count2 = count2 + 1;
var content = $(this).html();
$(this).after('<a>' + content + '</a>');
var object = $(this).next();
$.each(this.attributes, function () {
if (this.specified) {
object.attr(this.name, this.value);
}
});
$(this).remove();
}
});
console.log('总共发现'+count1+'个span元素,其中'+count2+'个符合条件的改成了a!');
console.log($('#content').html());
});