我使用此代码将“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列:文档类型不允许元素“span”在这里
…s).html().replace('Holla','<span class="txtWarn">Holla Hee</span>'));
还有另外一种方法吗? (无法将脚本保存到外部js。文件中)
答案 0 :(得分:1)
您可以尝试< and >
:
替换这个:
$(this).html($(this).html()
.replace('Holla','<span class="txtWarn">Holla Hee</span>'));
用这个:
$(this).html($(this).html()
.replace('Holla','<span class="txtWarn"> Holla Hee </span>'));
您可以尝试使用变量:
var span = '<span class="txtWarn"> Holla Hee </span>';
$(this).html($(this).html().replace('Holla', span));
答案 1 :(得分: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>
如果Holla
中只有td
,则另一种方法可能会使用.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>
完全相同,且不得有任何空格。