在工作中遇到這樣一個問題,數據庫中存放着HTML代碼,並且還帶有樣式,我要在界面上修改他已經寫好的樣式,例如把這個字段的字體改成微軟雅黑,數據庫中對應字段內容如下圖

在界面面上是直接把上圖這段HTML,放到界面上,這里用到了ko就是Knockoutjs,,里面的那句data-bind:html:JobDesc 中的html:JobDesc 效果跟@Html.Raw() 效果一樣,即使直接把數據庫中的HTML代碼插入到界面上。 代碼如下圖

要改掉里面的樣式:很簡單就是去覆蓋里面樣式,問題不在這,插進去的這段HTML,其實是
<div class="col-xs-9 as" data-bind="html:JobDesc">
</div>
的后代元素,我們要去修改他的樣式,就要這樣寫,用到了JQuery
$("div[class='col-xs-9 as']").find("*").css("font-family","Microsoft YaHei");
用到了這個方法find("*"),作用是 返回選中標簽的所有后代。
這是一種情況,
還有一種情況是數據庫中剛好這一段是沒有HTML標簽,只有文字,這種情況下就要加一句
$("div[class='col-xs-9 as']").css("font-family","Microsoft YaHei");
綜合起來就是在js中加上下面的代碼:
$(function(){
$("div[class='col-xs-9 as']").css("font-family","Microsoft YaHei");
$("div[class='col-xs-9 as']").find("*").css("font-family","Microsoft YaHei");
});
