2016-12-13 10 views
2

こんにちは、おそらくここではかなり簡単な質問です。JQueryのプリペンド機能

テーブル行に<td>を先行させています。セレクタの値を内部に入れたいと思います。

HTML:

<div style='display:none'> 
    <div id='text1'>this is the text</div> 
</div> 

JS:

$('#tablediv tr:eq(3)').prepend('<td></td>'); 

私が作成したTDの内側のdiv値を追加したい:事前に答えを

$('#tablediv tr:eq(3)').prepend('<td>$text1</td>').html(); this does not work. 

感謝。

+0

間違いラインに私が持っていることを配置します( '#のfieldset_Q2のTR:EQ(3)')。プリペンドを( '​​');私は$( 'fieldset_Q9 td:eq(3)')を持っています。 – Zygimantas

+1

.html()で何を達成しようとしていますか。 – Eric

+0

あなたはちょうど$(# 'text1')。replaceWith(あなたのコンテンツ)を使用していますか?私はjqueryで優れていませんが、私の推測ではこれを行うには百万の方法があるでしょう。 – Birdy

答えて

2

divのテキストの値を挿入するには、.text()を使用します。次に、あなたの<td>

$('#tablediv tr:eq(3)').prepend('<td>'+$('#text1').text()+'</td>'); 
+0

これは機能しますが、これにカラムスパンを追加する方法についてもう少し簡単に質問できますか? – Zygimantas

+0

'.prepend( '') 'を使用しますが、これで十分かどうか"カラムスパン "がどのように機能するかによって異なります。ほとんどの場合、他のすべての行に新しいセルを追加する必要があります(これは簡単に行えます)。 –

+0

@ZygimantasKairysあなたは単にあなたのtd内にcolspan = "3"を入れます: '.prepend( '' + $( '#text1')。text()+ '') ; ' –

1

私が作成したTDの内側のdiv値を追加したい:

このコード:

$('#tablediv tr:eq(3)').prepend('<td></td>'); 

は、行を挿入します - これはあなたのために働いているように見えます。あなたができるtext1のコンテンツを挿入するには

、:

$('#tablediv tr:eq(3)').prepend('<td>' + $("#text1").html() + '</td>'); 

可能な代替は、例えば、先頭に付加されたコンテンツを返す、prependToを使用することです:

var cell = $("<td></td>").prependTo($("table tr:eq(3)")); 
cell.html($("#text1").html()); 

に短縮することができます。

$("<td></td>") 
    .prependTo($("table tr:eq(3)")); 
    .html($("#text1").html()); 

(呼び出しの戻り値を使って別の呼び出しを行う)連鎖を使用し、文字列を連結するのではなく、非常に手早くなる可能性が高い "jquery-esq"です。

+0

これは質問に感謝しました! – Zygimantas