2012-03-08 3 views
4

クリックすると、divがコピーされます。私はいくつかのHTMLを変更して、追加したいと思います。jQueryがクローンのhtmlを変更しました

私は以下を試しました。クローンして追加しますが、htmlを変更することはできません。それを処理する最善の方法は何か、私は間違っていると確信しています。

おかげ

var htmlStr = $(this).parents(".listingContainer").first(); 
$htmlStr.find(".saveCompareShow").remove() 
$(htmlStr).clone().appendTo('.compareWrapper');       
+0

をあなたは、もはや要素を一意に識別できない、ある種のid属性を介してクローンhtmlを編集しようとしていますか? –

+0

申し訳ありませんが、.saveCompareShowは、コピーされたアウトターがあるdivです。問題はありません。私はちょうどそれを見つけるために間違った構文を使用しています。 In firebugのエラーは$ htmlStrが定義されていません –

+2

ヘッドアップ:2行目で未定義の変数を参照しています。 – shaunsantacruz

答えて

7

を置き換えるために、これを試してみてくださいそれはクローンされていません。セレクタの代わりに変数を使用するだけです。あなたがlistingContainer DIVの内容のクローンを作成し、compareWrapper divのにそれらを追加する前に内容を変更することができます

​<div class='listingContainer'> 
    <div class='listing'> 
     Something 
    </div> 
    <div class='listing'> 
     Another something 
    </div> 
</div> 

:あなたは、このようにHTMLを持っていると仮定すると

http://jsfiddle.net/hkBMK/

0

ので、あなたの変数htmlStrは実際の要素ではなく文字列です。しかしそれは大丈夫です。私はあなたが二行目でこれを行うために必要があると思う:

htmlStr.remove(".saveCompareShow"); 

私がcorrecly表示された場合、あなたはクラスで要素を削除しようとしている「.saveCompareShow」htmlStr要素から。そうですか?

** EDIT **あなたはDOM要素を変更したいだけであるかのようにあなたがそれを扱うべきでDOM要素をクローン化したら

両方のライン2及び3

$(htmlStr).clone().remove(".saveCompareShow").appendTo('.compareWrapper'); 
+0

私はそれを試みましたが、うまくいきません。私はあなたが私の$ htmlStrの代わりにhtmlStrを使用していることを確認していますが、それは元のファイルとクローンの両方からクラスを削除しました –

+0

@KeithPower - 私の編集を見て、私が与えた元の解決方法は元の要素からその要素を削除します。 –

1

をクローニングした後、あなたはそれがすでにHTMLたかのようにオブジェクトを扱うことができます:私はまた、あなたが働いてそれを見ることができるようにjsFiddleを掲載しました

$(document).ready(function() { 
    $('.listing').click(function() { 
     var $htmlStr = $(this).parents(".listingContainer").first(); 
     $htmlStr.clone().find('.listing').html('<li>Cloned</li>').appendTo('.compareWrapper'); 
    }); 
}); 

:次のJavaScriptは、簡単な例を示していますドーム。例えば

- HTMLページ上:

<div id="cloneHere"></div> 
<div class="well" id="buildInfoTemplate"> 
    <form> 
     <fieldset> 
      <legend></legend> 
      <label></label> 
      <input type="text" placeholder="Type something…"> 
      <span class="help-block">Example block-level help text here.</span> 

      <button class="btn">Save</button> 
     </fieldset> 
    </form> 
</div> 

はあなたが助けブロックのテキストを変更したいとしましょう:

var template = $('#buildInfoTemplate').clone().removeAttr('id'); 
$('.help-block',template).html('hi there ryan'); 
$('#cloneHere').append(template); 

そして、あなたが買ってあげる:

<div id="cloneHere"> 
    <div class="well"> 
    <form> 
     <fieldset> 
      <legend></legend> 
      <label></label> 
      <input type="text" placeholder="Type something…"> 
      <span class="help-block">hi there ryan</span> 

      <button class="btn">Save</button> 
     </fieldset> 
    </form> 
    </div> 
</div> 
関連する問題