2016-12-11 4 views
0

私は無線入力として国のリストを持つテーブルを持っています。ユーザーが国をクリックすると、2つ目の表が表示され、2つのオプションが表示されます。現在、第二表の入力は、次のとおりです。JQueryを使用した入力によるテーブルhtmlの変更方法

<td><input class="rr ref1" id="ref1" name="reference" type="radio" /> Who xx references</td> 

<td><input class="rr ref2" id="ref2" name="reference" type="radio" /> Who reference xx</td> 

私が選択した特定の国との「XX」を交換したいです。

私は$("td:contains('xx')").replaceWith("COUNTRY")を使用しましたが、これはhtmlを単なるプレーンテキストに置き換えます。

私はjQueryのスクリプトが

$( "TD:( 'XX')が含ま")を実行does notの全体TDコードを交換しようと、私は交換したいreplaceWith( "<td><input class="rr ref1" id="ref1" name="reference" type="radio" /> COUNTRY</td>")

を。国のクラス名が選択されていますが、私はそれを働かせることはできません $("td:contains('xx')").replaceWith($(this).className.text())

どのようなヘルプやガイダンスを参考にしてください。

答えて

0

なぜJS replace()を使用しないのですか? Smth。このように:

$.each($("td:contains('xx')"), function(k, v) { 
    var str = $(v).html(); 
    $(v).html(str.replace("xx", "COUNTRY")); 
}); 
+0

ありがとうございます。私はテキストをクラス名で置き換えることはできません。私は $(this).attr( "class") を使ってみましたが、それは未定義となります。しかし、クラスをアラートボックスでチェックすると、クラスがきれいになります。 alert($(this)).attr( "class")); –

+0

$ .each()ループの前にクラス名を取得し、それを変数に割り当て、ループ内でその変数を使用します。ループ内では、 "this"は要素全体です。 – Vagharsh

関連する問題