求代码 查收例句中与文本框相同的单词并改成红色显示

flayying 2020-01-08 08:37:39
做ANKI用的,
原代码是这样的:
function highlight(text)
{

inputText = document.getElementById("inputText")
var innerHTML = inputText.innerHTML
var index = innerHTML.indexOf(text);
if ( index >= 0 )
{
innerHTML = innerHTML.substring(0,index) + "<span class='highlight'>" + innerHTML.substring(index,index+text.length) + "</span>" + innerHTML.substring(index + text.length);
inputText.innerHTML = innerHTML
}

}
highlight('{{单词1}}');

</script>
前面调用没问题,后面改个ID号再用这个不起作用,不知道问题出在哪里,求救,谢谢。
...全文
61 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2020-01-08
  • 打赏
  • 举报
回复
引用 9 楼 flayying 的回复:
前一句正常,后面这个例句,怎么弄都没反应了,一样的代码
你是定义了两个highlight()函数吗?函数重名当然不行了。 把id通过参数传给函数。用一个函数就可以。

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title></title>
<style type="text/css">
.highlight {
	color: red;
}
</style>
</head>
<body>
<div id="ff" >qweabcghj</div>
<div id="ee" >123456789</div>
<script>
function highlight(text,id)
{
	var inputText = document.getElementById(id);
    var innerHTML = inputText.innerHTML;
    var index = innerHTML.indexOf(text);
    if ( index >= 0 )
    { 
        innerHTML = innerHTML.substring(0,index) + "<span class='highlight'>" + innerHTML.substring(index,index+text.length) + "</span>" + innerHTML.substring(index + text.length);
        inputText.innerHTML = innerHTML;
    }
}
highlight('abc',"ff");
highlight('567',"ee");
</script>

</body>
</html>

flayying 2020-01-08
  • 打赏
  • 举报
回复
前一句正常,后面这个例句,怎么弄都没反应了,一样的代码
flayying 2020-01-08
  • 打赏
  • 举报
回复
flayying 2020-01-08
  • 打赏
  • 举报
回复
后面调的是另外一句,你写的这个填上去没反应
天际的海浪 2020-01-08
  • 打赏
  • 举报
回复
引用 5 楼 flayying 的回复:
第1次用没问题,后面再调没反应了
再次调用时要先把上次添加的span标签删掉 var innerHTML = inputText.innerHTML.replace("<span class=\"highlight\">","").replace("</span>","");
flayying 2020-01-08
  • 打赏
  • 举报
回复
第1次用没问题,后面再调没反应了
天际的海浪 2020-01-08
  • 打赏
  • 举报
回复
正常啊

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title></title>
<style type="text/css">
.highlight {
	color: red;
}
</style>
</head>
<body>
<div id="ff" >qweabcghj</div>
<script>
function highlight(text)
{
	var inputText = document.getElementById("ff");
    var innerHTML = inputText.innerHTML;
    var index = innerHTML.indexOf(text);
    if ( index >= 0 )
    { 
        innerHTML = innerHTML.substring(0,index) + "<span class='highlight'>" + innerHTML.substring(index,index+text.length) + "</span>" + innerHTML.substring(index + text.length);
        inputText.innerHTML = innerHTML;
    }
}
highlight('abc');
</script>
</body>
</html>
flayying 2020-01-08
  • 打赏
  • 举报
回复
第一次这样调 用没问题,后面一样的代码,不 起作用了
<p id="inputText" class="sentence"><span class="quote"></span> {{句子}}<span class="quote"></span></p>

<script>

function highlight(text)
{

inputText = document.getElementById("inputText")
var innerHTML = inputText.innerHTML
var index = innerHTML.indexOf(text);
if ( index >= 0 )
{
innerHTML = innerHTML.substring(0,index) + "<span class='highlight'>" + innerHTML.substring(index,index+text.length) + "</span>" + innerHTML.substring(index + text.length);
inputText.innerHTML = innerHTML
}

}
highlight('{{单词1}}');

</script>
flayying 2020-01-08
  • 打赏
  • 举报
回复
<div id="ff" > {{例句1}}</div>

<script>

function highlight(text)
{


inputText = document.getElementById("ff")


var innerHTML = inputText.innerHTML
var index = innerHTML.indexOf(text);

if ( index >= 0 )
{
innerHTML = innerHTML.substring(0,index) + "<span class='highlight'>" + innerHTML.substring(index,index+text.length) + "</span>" + innerHTML.substring(index + text.length);
inputText.innerHTML = innerHTML
}

}
highlight('{{word2}}')
</script>
天际的海浪 2020-01-08
  • 打赏
  • 举报
回复
什么改个ID号?说清楚,或者发下完整代码。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧