2016-08-19 7 views
2

テーブル行をHTML形式にしたテーブルがありますが、内部には<span>要素がいくつかあるため、その範囲の内部HTMLを取得します。jQueryのHTML要素を解析して内部のHTMLを取得する

(私はAPIプラグインのDataTableからそれを得るためではないjQueryのオブジェクト、)私はすべての<tr>の要素を持つ配列を持っているので、私はこのコードを持っている:

if (data[i+1].includes("span")) { 
    var label = $.parseHTML(data[i+1]); 
    // editFormInputs.eq(i).val(label.first().html()); 
} else { 
    editFormInputs.eq(i).val(data[i+1]); 
} 

だから、問題はコメント行です。私はhtmlを配列を返すparseHTML()でjQuery要素に変換しようとしました。これは正常に動作しますが、first()関数を使って配列の最初の要素を取得しようとすると、エラーfirst() is not a functionが返されます。ありがとう。

+1

あなたがこれまでにしようとしているいくつかのコードを投稿してください。だから他の人が正しい方向にあなたを指すことができます –

答えて

2

parseHTMLは、jQueryオブジェクトを提供しない珍しいjQuery関数の1つです。

jQuery.parseHTML(data [, context ] [, keepScripts ])

戻り値:Array

説明:DOMノードの配列に文字列を解析し、それはあなたの配列を与えます。

(私の強調)だから、

label[0]tr要素になることを

editFormInputs.eq(i).val($(label[0]).html()); 

注意。 tr要素のHTMLと、spanのいずれかのHTMLが欲しいとはっきりしていませんでしたが、いずれにせよ、その理由が原因です。

あなたがHTML(たとえば)trの最初のspanをしたい場合:

editFormInputs.eq(i).val($(label[0]).find("span").first().html()); 
+0

はい、それは今うまく動作し、多くのありがとう! 'parseHTML'はjQuery要素の配列を返し、通常のJavascript配列は返しません。 –

+0

@EliasGarciaMariño::-)もしそれが含まれていても、 'label.first()'はそれに何が含まれていても(DOM要素とjQueryオブジェクト)関係なく、参照される 'label'配列にはa 'first'メソッドです。 –

関連する問題