Katakanlah kita memiliki HTML berikut:

<p>1234<strong>5678</strong>.</p>

Katakanlah jika kita ingin mempertimbangkan '234' sebagai pilihan, indeks relatif terhadap p elemen induk akan menjadi 1-3 (menggunakan 0 sebagai indeks awal).

Bagaimana cara menentukan simpul apa (mis. textNode) pada indeks karakter 7 paragraf?

Jawaban yang jelas adalah textNode milik elemen strong: bagaimana saya melakukannya dengan asumsi teks adalah pilihan tidak (misalnya tidak ada window.getSelection()) untuk referensi?

0
John 5 Juli 2020, 08:17

1 menjawab

Jawaban Terbaik

Ini ternyata sebenarnya sedikit lebih mudah daripada yang saya kira namun mungkin memiliki keterbatasan (yang lain dipersilakan untuk memperluas).

var tl = 0;//text length, increment per node's textContent.length
for (var i = 0; i < element.childNodes.length; i++)
{
 console.log(i+' = '+ac.childNodes[i].textContent.length);
 tl = (tl + element.childNodes[i].textContent.length);
}

Jadi kita bisa menggunakan break ketika panjangnya tiba-tiba sama dengan atau lebih besar dari referensi indeks karakter apa pun yang kita cari.

Mungkin ada kompleksitas dari beberapa node bersarang seperti elemen em yang disarangkan dalam elemen strong untuk dipertimbangkan dan dapat dikembangkan oleh orang lain.

0
John 5 Juli 2020, 06:40