Jquery 运行时使文本加粗
我正在使用knockout将视图绑定到viewmodel 我的看法是Jquery 运行时使文本加粗,jquery,html,knockout.js,Jquery,Html,Knockout.js,我正在使用knockout将视图绑定到viewmodel 我的看法是 <table> <tr> <td data-bind ="text: ConcenatedData"></td> </tr> </table> 我在我的可观测数据中获取数据,如我们公司是否需要此Emp 所以我想在标签和之间加粗。这样输出将我们公司需要这个Emp吗` 如何做到这一点 更新 我已经创建了fiddle,我希望标记和。之
<table>
<tr>
<td data-bind ="text: ConcenatedData"></td>
</tr>
</table>
我在我的可观测数据中获取数据,如我们公司是否需要此Emp
所以我想在标签和之间加粗。
这样输出将我们公司需要这个Emp吗`
如何做到这一点
更新
我已经创建了fiddle,我希望标记
和。
之间的文本为粗体。这是一个工作的fiddle:
- 将
更改为 - 将
更改为text:
html:
- 将
添加到父级.makeBold
- 添加这个css .makeBold span{ 字体大小:粗体; 边框底部:5px纯黑; }
不是):
更改:
<td data-bind="text: display"></td>
致:
编辑:
更新以包含
-替代解决方案是为其使用knockout.js自定义绑定,它将
和
标记动态替换为
和“
”。如果您将来想使用knockout.js进行一些更高级的自定义绑定,这可能会有所帮助
自定义绑定可能如下所示:
ko.bindingHandlers.boldText = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
val = valueAccessor().replace('<temp>', '<span class="makeBold">').replace('</temp>', '</span>').replace('<val>', '"').replace('</val>', '"');
element.innerHTML = val;
}
};
ko.bindingHandlers.boldText={
init:function(元素、valueAccessor、allBindingsAccessor、viewModel、bindingContext){
},
更新:函数(元素、valueAccessor、allBindingsAccessor、viewModel、bindingContext){
val=valueAccessor().replace('','').replace('','').replace('','').replace('');
element.innerHTML=val;
}
};
然后您将执行以下绑定:
<td data-bind="boldText: display"></td><td > </td>
请参见此处的JSFIDLE:现代浏览器将获得以下css规则:
temp{font-weight:bold;}
@Cherniv你能告诉我怎么做吗?他刚刚做了,哈哈xD你只需要把他给的代码像其他CSS一样放在一对
标签中。或者你可以把它放在
选择器中,如果你能做
等待你知道的knockout.js,而不是简单的CSS?不,很高兴。请尝试看看,如果你有任何问题,请告诉我们非常感谢你的解决方案,但我需要接受另一个解决方案,因为他帮了我很多。我对你的努力投了赞成票。
ko.bindingHandlers.boldText = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
val = valueAccessor().replace('<temp>', '<span class="makeBold">').replace('</temp>', '</span>').replace('<val>', '"').replace('</val>', '"');
element.innerHTML = val;
}
};
<td data-bind="boldText: display"></td><td > </td>