0

2 つの要素間の html/text ノード コンテンツを取得するための以前のエントリをすべて読みましたが、うまくいきません。

jQuery と純粋な JavaScript を組み合わせて試してみましたが、やはり何もありません。

私はxmlコードから作業しようとしています。私は xml を制御できません。World English Bible XML からそのままです。

var xml='<p><v id="1" />In the beginning, God<f caller="+">The Hebrew word rendered “God” is “אֱלֹהִ֑ים” (Elohim).</f> created the heavens and the earth. <ve />'
+'<v id="2" />The earth was formless and empty. Darkness was on the surface of the deep and God’s Spirit was hovering over the surface of the waters. <ve /></p>'
+'<p><v id="3" />God said, “Let there be light,” and there was light. <ve />'
+'<v id="4" />God saw the light, and saw that it was good. God divided the light from the darkness. <ve />'
+'<v id="5" />God called the light “day”, and the darkness he called “night”. There was evening and there was morning, the first day. <ve /></p>';

私がする必要があるのは、<v>要素と要素の間のすべての html (テキストと html) を取得し、<ve>それをラップして、<span>個々の節で css を使用できるようにすることです。

//original
<v id="1" />In the beginning, God<f caller="+">The Hebrew word rendered “God” is “אֱלֹהִ֑ים” (Elohim).</f> created the heavens and the earth. <ve />
//becomes
<span class=v id=GEN0101>In the beginning, God<f caller="+">The Hebrew word rendered “God” is “אֱלֹהִ֑ים” (Elohim).</f> created the heavens and the earth. </span>

を使用してjQueryを試しnextUntil()ましたが、要素のみを変更し<f>ます。

var $x=$(xml);
$x.find("v").nextUntil("ve").css('background','red');
$("#content").append($x);

これが私のフィドルです:JSFiddle作業

純粋なJavaScriptを試しましたが、それも機能しません。

var v = xml.getElementsByTagName("ve")[0].previousSibling.textContent;
$("#content").append('<div>'+v+'</div>');

ありがとうございました

4

1 に答える 1