除算とクラスのリストを指定して、それらの内部でテキストの置換を行う関数を作成しようとしています。
Firefox Dom がテキスト ノードを異なる方法で処理する方法を知ったので、javascript を使用して、nextSibling の兄弟である要素をループ処理する必要があることを読みました。
私のスクリプトの最後の障害は、クラス名を取得することです。どのコンテンツのテキストが置き換えられるかをフィルタリングできるように、クラス名が必要です。
すべての回答を確認し、職場の Ryan という同僚の助けを借りて、これを jquery でやり直しました。
$(divid).find(".status_bar").each( function() {
var value = $.trim($(this).text());
// if value is not defined thru browser bugs do not replace
if (typeof(value) != 'undefined') {
// it is a text node. do magic.
for (var x = en_count; x > 0; x--) {
// get current english phrase
var from = en_lang[x];
// get current other language phrase
var to = other_lang[x];
if (value == from) {
console.log('Current Value ['+value+'] English ['+from+'] Translation ['+to+']');
value = to;
$(this).attr('value', to);
}
}
}
});
これは現在、テキストの置換を除くすべての領域で機能します。
私がもともとこれをjQueryで行っていた理由は、要素をループして、firefoxとテキストノードの問題を回避できるかどうか確信が持てなかったためです。
div 内のすべての要素のループを実行していますが、ループしている要素のクラス名を取得する必要があります。
次に、現在の要素のクラスが 1 かどうかを確認できます。何かを行う必要があります...
// var children = parent.childNodes, child;
var parentNode = divid;
// start loop thru child nodes
for(var node=parentNode.firstChild;node!=null;node=node.nextSibling){
var myclass = (node.className ? node.className.baseVal : node.getAttribute('class'));
}
しかし、クラス名を取得するためのこのコードは、null 値のみを取得します。
助言がありますか?
全体の要点を理解しようとしている人は、このJavaScript NextSibling Firefox Bug Fix I have code that does my language translation that works in Google Chrome and IE. しかし、Firefox で使用し、ajax が読み込まれた後に div コンテンツを翻訳しようとすると、空白の問題が原因で失敗します。
私は本当に jQuery や Pure Javascript の好みはありません。実用的なソリューションが欲しいだけです。
辛抱強くお待ちいただきありがとうございます。個人的には私の説明は非常に明確であると思っていましたが、そうでなかったら申し訳ありません。私はあいまいにしたり、助けを得るのを難しくしたりしませんでした。しかし、私がそれを不明確にしようとしているとほのめかして、私を侮辱しないでください.
ありがとう。