【发布时间】:2017-03-24 01:47:10
【问题描述】:
给定 HTML 作为字符串,Xpath 和偏移量。我需要突出显示这个词。
在以下情况下,我需要突出显示Child 1
HTML 文本:
<html>
<body>
<h2>Children</h2>Joe has three kids:<br/>
<ul>
<li>
<a href="#">Child 1 name</a>
</li>
<li>kid2</li>
<li>kid3</li>
</ul>
</body>
</html>
XPATH 为:/html/body/ul/li[1]/a[1]
偏移量:0,7
渲染 - 我在我的应用程序中使用 react。
以下是我到目前为止所做的。
public render(){
let htmlText = //The string above
let doc = new DOMParser().parseFromString(htmlRender,'text/html');
let ele = doc.evaluate("/html/body/ul/li[1]/a[1]", doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); //This gives the node itself
let spanNode = document.createElement("span");
spanNode.className = "highlight";
spanNode.appendChild(ele);
// Wrapping the above node in a span class will add the highlights to that div
//At this point I don't know how to append this span to the HTML String
return(
<h5> Display html data </h5>
<div dangerouslySetInnerHTML={{__html: htmlText}} />
)
我想避免使用 jquery。如果可能的话,想用 Javascript(React)做!
编辑:
因此,如果您注意到 Render 函数,它正在使用 dangerouslySetHTML。
我的问题是我无法操纵呈现的字符串。
【问题讨论】:
-
可能只有我一个人,但不清楚你到底需要完成什么?是否需要简单地修改
htmlText的值,然后再放入dangerouslySetInnerHtml? -
这是您的实际代码 sn-p 还是只是一个示例?这里有很多东西令人费解,在渲染之前有
public,然后你试图将html嵌套在div中。你能分享一个更完整的代码吗? git repo 会更好。
标签: javascript html reactjs xpath