【发布时间】:2017-09-19 07:59:03
【问题描述】:
我正在尝试突出显示网络浏览器上显示的 html 文档中的特定句子。
我的控制器中有这个动作:
public ActionResult GetHtmlPage(string path)
{
return new FilePathResult(path, "text/html");
}
我有这个 view 显示指定路径中的 html 文档。
@model TextPlagiarismWebApp.Models.ViewModels.ManageDocumentViewModel
@{
ViewBag.Title = "ManageDocument";
}
<h2>ManageDocument</h2>
@Html.Action("GetHtmlPage", "Upload", new { path = Model.documentPath })
<script type="text/javascript">
var sen = @Model.sentence["sentence"];
$("div:contains('" + sen + "')").html(function (_, html) {
var regex = new RegExp("(" + sen + ")", "g");
return html.replace(regex, '<span style="background-color:#FFFF00">$1</span>');
});
</script>
我调试了程序,并且 sen 变量是我所期望的:
var sen = @Model.sentence["sentence"];
但尽管如此,它并没有突出显示我正在寻找的特定句子。它只显示原始的 html 文档。
让我们以这个我确定句子存在的例子为例:
var sen = "Requirements for breeding tanks vary with each species. Separate tanks may be required."
HTML:
<p class=MsoNormal style='text-align:justify;mso-layout-grid-align:none;
text-autospace:none'><span lang=EN-AU style='color:black'>Requirements for
breeding tanks vary with each species. Separate tanks may be required.<o:p>
</o:p></span></p>
但是句子没有突出显示,我不知道为什么。
有什么建议吗?
【问题讨论】:
-
我检查了你之前的问题答案。这个问题看起来不错。
-
你的变量很好。但是你的 HTML 有问题。 “要求”之后的换行符。
标签: javascript jquery html asp.net asp.net-mvc