0

我用以下代码将洞网站上的“Holla”替换为突出显示的“Holla Hee”:

$("td").each(function () {
    if ($(this).children().length == 0) {
        $(this).html($(this).html().replace('Holla','<span class="txtWarn">Holla Hee</span>'));
    }
});

http://validator.w3.org给出了错误:

错误第 205 行,第 79 列:文档类型在此处不允许元素“跨度”

…s).html().replace('Holla','<span class="txtWarn">Holla Hee</span>'));

还有其他方法吗?(无法将脚本保存到外部 js. 文件中)

4

2 回答 2

1

您可以尝试&lt; and &gt;

替换这个:

 $(this).html($(this).html()
        .replace('Holla','<span class="txtWarn">Holla Hee</span>'));

有了这个:

$(this).html($(this).html()
       .replace('Holla','&lt;span class="txtWarn"&gt; Holla Hee &lt;/span&gt;'));

更新:

您可以尝试使用变量:

var span = '<span class="txtWarn"> Holla Hee </span>';
$(this).html($(this).html().replace('Holla', span));

演示

于 2013-04-15T07:58:08.140 回答
0

如果您的代码在<head>文档中,您可以尝试使用 CDATA

    <script type="text/javascript">
    //<![CDATA[
    $(function(){
       $("td").each(function () {
         if ($(this).children().length == 0) {
            $(this).html($(this).html().replace('Holla','<span class="txtWarn">Holla Hee</span>'));
         }
       });
    });
    //]]>
    </script>

如果你只有Hollatd那么另一种方法可以.html()用来添加代码。

$(function () {
    $("td").each(function () {
        var td = $(this);
        if (td.children().length == 0 && td.text() === 'Holla') {
            td.html('<span class="txtWarn">Holla Hee</span>');
        }
    });
});

请注意,要使其正常工作,td必须看起来完全一样<td>Holla</td>,并且不能有任何空格。

于 2013-04-15T09:46:53.180 回答