基本的に、Web サービスからオブジェクトの配列 (コンマで区切られた用語を含む) として取得された単語のリストを検索して置換する必要があります。検索と置換はDOM 内の特定の要素でのみ発生しますが、未知のさまざまな数の子を持つことができます (そのうちの未知の回数ネストすることができます)。
私が苦労している主な部分は、ネストされた要素の量が不明な状態で、すべてのノードを textNode レベルまで選択する方法を考え出すことです。
これは非常に単純化された例です:
Web サービスから取得:
[{
terms: 'first term, second term',
youtubeid: '123qwerty789'
},{
terms: 'match, all, of these',
youtubeid: '123qwerty789'
},{
terms: 'only one term',
youtubeid: '123qwerty789'
},
etc]
HTML は次のようになります。
<div id="my-wrapper">
<ol>
<li>This is some text here without a term</li>
<li>This is some text here with only one term</li>
<li>This is some text here that has <strong>the first term</strong> nested!</li>
</ol>
</div>
Javascript:
$('#my-wrapper').contents().each(function(){
// Unfortunately only provides the <ol> -
// How would I modify this to give me all nested elements in a loopable format?
});