使用jquery忽略html标记中的数字

时间:2014-03-25 06:36:13

标签: javascript jquery html css regex

我有一个我真正想要使用的webfont,但是字体设计师在创建数字字符时变得懒惰。与字母字符相比,它们的大小都不同。

我正在尝试通过对每个数字字符应用唯一的css来标准化它们。这仅适用于h1标签。

我在jquery中的技巧是搜索文本并为数字1应用<span class="font-fix-1">1</span>,为数字2等应用<span class="font-fix-2">2</span>

但是,我不希望定位可能在html脚本中的数字。 例如,如果我有以下h1:

<h1>This is a Heading with the number 20 in it and some <sup style="font-size:12px">annoying html</sup></h1>

我不希望脚本替换<sup>标记中的数字“2”,只替换<h1>标记。

有谁知道如何用javascript识别这个?

我到目前为止的脚本是:

var h1_text = "";
jQuery("h1").each(function(){
    h1_text = jQuery(this).html();
    h1_text = h1_text.replace(/1/g, '<span class="font-fix-1">1</span>');
    jQuery(this).html(h1_text);
});

1 个答案:

答案 0 :(得分:0)

你可以这样做

HTML

<span>
    <a>123456789</a> //number that you want to ignore
    Text I want //the text that you want
</span>

的JavaScript

alert($("span").contents().filter(function(){
    return this.nodeType === 3;
}).text())