Javascript 如何有选择地加粗部分但不是全部<;a>;元素';s链接文本由jQ函数重写并注入现有(已加载)页面?
我当前的jQuery函数片段如下所示。它通过Ajax更新一些链接文本,因此浏览器中不会出现页面刷新 函数执行前的HTML:Javascript 如何有选择地加粗部分但不是全部<;a>;元素';s链接文本由jQ函数重写并注入现有(已加载)页面?,javascript,jquery,Javascript,Jquery,我当前的jQuery函数片段如下所示。它通过Ajax更新一些链接文本,因此浏览器中不会出现页面刷新 函数执行前的HTML: <a href="..." id="count"><b>1</b> following</a> <a href="..." id="count"><b>2</b> following</a> 函数执行后的HTML: <a href="..." id="count">
<a href="..." id="count"><b>1</b> following</a>
<a href="..." id="count"><b>2</b> following</a>
函数执行后的HTML:
<a href="..." id="count"><b>1</b> following</a>
<a href="..." id="count"><b>2</b> following</a>
问题是在我的函数将2从1增加到2后,我需要将2加粗。呈现页面时,第一个HTML片段将数字1加粗。但是因为我使用的是Ajax,所以我没有得到浏览器刷新,所以
和
标记显示为文本,而不是粗体2。有没有一种方法可以将该2换行以强制浏览器加粗?您可以先从html中删除
标记:
<a href="..." id="count">1 following</a>
不要替换整个文本块,只替换标记之间的内容:
var counter = parseInt( $('#count').find("b").text() );
counter++;
$("#count").find("b").text(counter);
实际上,我会使用样式化的span
而不是b
标记:
.following-counter {
font-weight: bold;
}
<a href="..." id="count">
<span class="following-counter">1</span>
following
</a>
为什么不直接使用CSS,省去麻烦:
a {
display: inline-block;
}
a::first-letter {
font-weight: bold;
}
var followingSpan = $("#count").find(".following-counter"),
counter = parseInt( followingSpan.text() );
counter++;
followingSpan.text(counter);
a {
display: inline-block;
}
a::first-letter {
font-weight: bold;
}