HTML
<div id="main">
<span>v</span>
<div id="main_cursor"></div>
</div>
Javascript
function highlight_word() {
var cursor = document.getElementById(area + '_cursor'),
pe = cursor.previousElementSibling,
ne = cursor.nextElementSibling;
var word = [];
f();
word = word.join();
if (isInArr(keywords_arr, word)) {
f(true);
};
function f(p = false) {
while ((pe === null ? " " : pe.innerHTML) !== " " ||
(ne === null ? " " : ne.innerHTML) !== " ") {
if (pe !== null) {
while (pe.innerHTML !== " ") {
p === true ? pe.style.color = "green" : word.push(pe.innerHTML);
pe = pe.previousElementSibling;
}; // end of while
word = word.reverse();
}; //end of if
if (ne !== null) {
while (ne.innerHTML !== " ") {
p === true ? pe.style.color = "green" : word.push(ne.innerHTML);
ne = ne.nextElementSibling;
}; //end of while
}; //end of if
}; // end of while
}; // end of function f
};
目的
目的は、最初に と の間にあるすべてのスパンの内部テキストを取得し、内部テキストmain_cursor
としてスペースを使用して、配列に単語 gets が存在するかどうかを確認することですkeywords_arr
。その単語はその配列に存在し、それらすべてのスパンのテキストの色を変更します
または、単語が含まれている場合は強調表示するだけですkeyword_arr
エラー
キャッチされていない TypeError: null のプロパティ 'innerHTML' を読み取れません
エラーは行に表示されます-
while(pe.innerHTML!==" "){
これは、発生してはならない条件がpe!==null
満たされた場合にのみ発生します。
私は何をすべきか?