Javascript 单击单词时获取单词的值
我有传递到页面的文本。使用下面的Javascript 单击单词时获取单词的值,javascript,html,Javascript,Html,我有传递到页面的文本。使用下面的突出显示功能也可以突出显示“特殊单词” 它将其放入一个标记中,并带有使其突出显示的类和样式。运行此功能后,文本中的特殊单词将突出显示并可单击 因此它会对文本执行此操作:Hello。创建一个,将其放入类和样式中 我现在遇到的问题是,当我单击一个已突出显示的单词时,它有自己的class='clickable'如何获取已单击的单词?我需要检查单击了哪个word,以便查询数据库并获取word的注释 highlight = words => { const hig
突出显示功能也可以突出显示“特殊单词”
它将其放入一个
标记中,并带有使其突出显示的类和样式。运行此功能后,文本中的特殊单词将突出显示并可单击
因此它会对文本执行此操作:Hello
。创建一个
,将其放入类和样式中
我现在遇到的问题是,当我单击一个已突出显示的单词时,它有自己的class='clickable'
如何获取已单击的单词?我需要检查单击了哪个word,以便查询数据库并获取word的注释
highlight = words => {
const high = document.getElementById('scrollable');
const paragraph = high.innerHTML.split(' ');
const res = [];
paragraph.map(word => {
let t = word;
if (words.indexOf(word) > -1) {
t =
'<a class="clickable" style="background-color: yellow;">' +
word +
'</a>';
console.log(words.indexOf(word));
}
// console.log(words);
res.push(t);
});
high.innerHTML = res.join(' ');
const elementsToMakeClickable = document.getElementsByClassName(
'clickable'
);
const elementsToMakeClickableArray = Array.from(elementsToMakeClickable);
elementsToMakeClickableArray.map(element => {
element.addEventListener('click', this.viewAnnotation.bind(this));
});
}
highlight=words=>{
const high=document.getElementById('scrollable');
const段落=high.innerHTML.split(“”);
常数res=[];
段落.map(word=>{
让t=单词;
if(words.indexOf(word)>-1){
t=
'' +
话+
'';
console.log(words.indexOf(word));
}
//控制台日志(文字);
res.push(t);
});
high.innerHTML=res.join(“”);
const elementTomateClickable=document.getElementsByClassName(
“可点击”
);
const-elementTomateClickableArray=Array.from(elementTomateClickable);
ElementToMateClickableArray.map(元素=>{
element.addEventListener('click',this.viewAnnotation.bind(this));
});
}
要保存一些时间日志,请执行以下操作:
console.log(文字)
将返回三个特殊单词。
console.log(words.indexOf(word))
会将每个单词返回为0、1或2,因为我们显然是控制台。记录索引
数据库中的特殊单词是:Hello
、Lorem
和dolor
。并不是说它应该有帮助,但我已经把它包括进去了。我不确定我是否正确地理解了你。。。由于您已经为每个a.clickable
-元素收听了click
-事件,我假设您的问题是获取单词的检索部分
在事件
-hander中,当前元素作为目标添加到事件
-object中。要检索html/文本内容,可以将此元素与textContent
/innerText
/innerHTML
属性结合使用:
viewAnnotation(e) {
const word = e.target.textContent.trim()
// Do something with `word`
}
我不确定我是否正确理解你。。。由于您已经为每个a.clickable
-元素收听了click
-事件,我假设您的问题是获取单词的检索部分
在事件
-hander中,当前元素作为目标添加到事件
-object中。要检索html/文本内容,可以将此元素与textContent
/innerText
/innerHTML
属性结合使用:
viewAnnotation(e) {
const word = e.target.textContent.trim()
// Do something with `word`
}
快速、简单、直截了当。非常感谢你的先生。这就是问题的答案,我会在计时器一到,就接受它作为答案。@Andrew很高兴听到这对你起了作用。感谢您的反馈:)快速、简单、直截了当。非常感谢你的先生。这就是问题的答案,我会在计时器一到,就接受它作为答案。@Andrew很高兴听到这对你起了作用。感谢您的反馈:)