2017-06-27 8 views
1

問題が残っています。<tr>をクローンし、JavaScript/jQueryでクローンの内容を変更してください

<table class="table"> 
<tbody> 
<tr id="kc_keychain_1"> 
    <td class="td-kc-id"> kc_keychain_1 </td> 
    <td class="td-kc-name"> Keychain 1 </td> 
    <td> 
     <p>my key</p> 
     <p>my second key</p> 
    </td> 
</tr> 
<tr id="kc_keychain_10"> 
    <td class="td-kc-id"> kc_keychain_10 </td> 
    <td class="td-kc-name"> Keychain 10</td> 
    <td> 
     <p>ma clé</p> 
     <p>Clé 005V</p> 
    </td> 
</tr> 
</tbody> 
</table> 

私はまた、特定の行を複製するクローン化された行の.tc-kc-id.tc-kc-name細胞を修正し、最終的にクローン化された追加を目指して、いくつかのJavaScriptコードを、持っている:私は現在、このようになりますシンプルな<table>持っています

var clonedTr = document.querySelector('#' + id).cloneNode(true); 

//$(clonedTr).find(".td-kc-id").innerText = "test"; 
//$(clonedTr).find(".td-kc-name").innerText = "test"; 

document.querySelector('tbody').appendChild(clonedTr); 

クローンを作成して問題なくクローンを追加します。しかし、コメントされたコードは機能しません。私がコメントしたコードで試しているのは、クラス名のおかげで特定のセルを取得し、innerTextプロパティを変更することです。

しかし、セルのinnerTextは変更されません。誰でも助けてくれますか? @ChrisGのおかげ

+0

'.innerText'は、jQueryオブジェクトではなくDOMノードにあるJSプロパティです。 '$(clonedTr).find("。td-kc-id ")[0] .innerText'を試したことがありますか? – Terry

+0

または '$(clonedTr).find(" .td-kc-id ")。テキスト("テスト ");' –

+0

@ChrisGあなたの答えは働いています!ありがとうございました –

答えて

0

おかげで、可能な作業溶液は次のとおりです。

$(clonedTr).find(".td-kc-id").text("test"); 
0

.innerTextはDOM要素のプロパティです。 DOM要素は、jQueryオブジェクトの0プロパティに格納されます。

だから、あなたはこれらのいずれかを使用することができます。

  • clonedTr.innerText = 'whatever';
  • $(clonedTr).text('whatever');
  • $(clonedTr)[0].innerText = 'whatever';

注:jQueryのコレクション、this === $(this)[0]を持つ(と、それへの参照ですしない場合DOM要素)。

関連する問題