2016-12-20 3 views
0

私はsummernoteを使用しています。テキストエリア内のコンテンツを引き出し、データベースに保存しようとしています。しかし、データベースに保存する前に、img base64の狂気を取り除き、イメージタグのソースを置き換えています。parseHTMLの後にpタグが取り除かれるのはなぜですか?

しかし、テキストエリアから受け取った元のソースを印刷すると、 var mytext = $('#myid').summernote('code');すべてが上手く表示されます。私の段落とイメージ(base64)を示しています。

しかし、私はjQueryのを使用している場合、parseHTMLを通じてこれを実行し、データをリードバックしようとすると、私は次のような結果を得る:

var mymodedtxt = $(mytext).html(); - 私はテキストのみの最初の段落を取得する(コンソールに出力)

$(mytext).children().prop('outerHTML'); - 変更した新しいパスの最初の画像のみを取得します。

<img src="/path/to/22019_5859a7b13a78c.jpeg" /> 

これらを印刷する前に、イメージパスを変更しています。私はこれをやっているだけです:

var i = 0; 
$(mytext).find('img').each(function() { 
    $(this).attr('src',newpath[i]); 
    i++; 
}); 

これを引き起こす可能性のある人はいますか?私のpタグが剥奪されるのはなぜですか?

答えて

1

jQueryコレクションで.html()を呼び出すと、コレクション内の最初の要素のHTMLのみが返されます。

あなたがすべきことは、コンテナ要素にHTML文字列をラップすることです。 a DIV、次にHTMLを取得します。

var mymodedtxt = $("<div>", { html: mytext }).html(); 
+0

ありがとうございました!それは有り難いです。非常に直感的ではありませんでしたが、大きなjqueryの男ではありませんでした;) - 投票アップ! – Rogelio

+0

情報を返すほとんどのjQuery関数は、コレクションの最初の要素からのみ情報を返します。 – Barmar

関連する問題