jQuery设置span部分文本为粗体失效,求解决方法
解决span中部分文本无法设置粗体的问题
嘿,我明白你遇到的问题了!你现在用的text()方法是罪魁祸首——jQuery的text()会把所有传入的内容都当成纯文本处理,哪怕你写了<b>标签(或者转义后的<b>),它都会直接显示成字符串,不会让浏览器解析成HTML标签,自然就看不到粗体效果啦。
正确的解决方案:改用html()方法
jQuery的html()方法会把传入的内容当作HTML代码来解析,这样<b>标签就能生效了。修改你的代码很简单:
原问题代码:
$('#spnApprRejInfo').text(response.d + " for " + "<b>" + spspnaname + "</b>");
修改后的代码:
// 直接用HTML标签,不需要转义 $('#spnApprRejInfo').html(response.d + " for " + "<b>" + spspnaname + "</b>");
更简洁的模板字符串写法(ES6+):
$('#spnApprRejInfo').html(`${response.d} for <b>${spspnaname}</b>`);
额外提醒:注意XSS风险
如果spspnaname是来自用户输入的内容,直接用html()可能会有跨站脚本攻击(XSS)的风险。这时候可以先把用户输入的内容用text()转义成安全的纯文本,再拼接进HTML:
// 先转义用户输入的内容 const safeSpspnaname = $('<span>').text(spspnaname).html(); // 再拼接成HTML $('#spnApprRejInfo').html(`${response.d} for <b>${safeSpspnaname}</b>`);
这样既实现了粗体效果,又能避免潜在的安全问题~
内容的提问来源于stack exchange,提问作者Nadeem
相关产品推荐
相关产品推荐

