2017-09-11 13 views
2

何とかjQueryで関数を使用する方法はありますか.append?私はこのような何かが必要です。HTML構造の作成と追加での関数の使用

$("<tbody>").append(function(){ 
    for (i = 0; i < Test1.length; i++){ 
     Test1[i] 
    } 
}) 

なぜこの場合

$("<tr>").append(
    $("<th>").append("#"), 
    $("<th>").append(THeaders[1]), 
    $("<th>").append("Tuesday"), 
    $("<th>").append("Wednesday"), 
    $("<th>").append("Thurdsday"), 
    $("<th>").append("Friday"), 
    $("<th>").append("Saturday") 
) 

で大丈夫すべてはあるがしかし、私は次のオプションで "> <番目の" なしの要素を受け取る:

$("<tr>").append(
    $.each(THeaders, function(i, d){ 
     $("<th>").append($('<th></th>').text(d)); 
    }) 
) 

var THeaders = ["#", "Monday", "Tuesday", "Wednesday", "Thurdsday", "Friday", "Saturday"]; 
+0

は、あなたが実際に代わり得るもの、あなたが期待したものについての詳細などを説明できますか?また、あなたのコードを[mcve]として投稿することもできます。なぜなら、部分的なコードは、問題を見るのに十分ではないからです。 '.each()'や$ .map() 'などを使ったり、コールバック' .on( 'event'、function(){'を使うのが最も簡単です。 -function](http://api.jquery.com/append/#append-function) – zer00ne

+0

あなたは ''要素に関数を追加しようとしています – rm4

+0

@ zer00neよろしくお願いします。 JSONファイルからテーブルを作成する必要があります。次のhtmlパーツ(https://pastebin.com/bczdjVEW)を受け取る予定です。JSONからデータを受け取って変換するスクリプトを少し作ったHTML:https://pastebin.com/UK42sdBp。すべてのデータが正しく受信されましたが、htmlコードに挿入してjsファイルに正しく再作成するのに問題があります。 – Ilikebigbugs

答えて

2
:あなたは TRタグ

ES6

var THeaders = ["#", "Monday", "Tuesday", "Wednesday", "Thurdsday", "Friday", "Saturday"]; 
 

 
$('thead tr').append(THeaders.map(val => `<th>${val}</th>`));
th{border: 1px solid #ddd;}
<table> 
 
    <thead><tr></tr></thead> 
 
</table> 
 

 
<script src="//code.jquery.com/jquery-3.1.0.js"></script>

またはJS昔ながらの方法で自分の価値観をラップするすべての値とテンプレートリテラル``を取得するために、JSの.map()を使用することができます

var THeaders = ["#", "Monday", "Tuesday", "Wednesday", "Thurdsday", "Friday", "Saturday"]; 
 

 
$('thead tr').append(THeaders.map(function(val) { return '<th>'+ val +'</th>'; }));
th{border: 1px solid #ddd;}
<table> 
 
    <thead><tr></tr></thead> 
 
</table> 
 

 
<script src="//code.jquery.com/jquery-3.1.0.js"></script>

jQueryの方法あなたが使用しようとしていたが -

var THeaders = ["#", "Monday", "Tuesday", "Wednesday", "Thurdsday", "Friday", "Saturday"]; 
 

 
$("<tr/>", { 
 
    append: THeaders.map(function(val){ 
 
    return $('<th/>', {text: val}); 
 
    }), 
 
    appendTo: 'thead' 
 
})
th{border: 1px solid #ddd;}
<table> 
 
    <thead></thead> 
 
</table> 
 

 
<script src="//code.jquery.com/jquery-3.1.0.js"></script>

+1

@cale_b私は今、ES6がJavascriptのデフォルトコンテキストであると思います。ES3/ES5が必要な場合は、それを規定する必要があります。私たちはある時点で進む必要があります。 – Keith

+0

個人的には、エスケープタグなどによって引き起こされる可能性のある問題を避けるために、個人的に '.text()'を使用します。 – Keith

+0

ありがとうございました。これは、曜日名は正しく機能しましたが、htmlコードの文字列では機能しませんでした。私はこのコメントを上からコピーして貼り付けています。これはすべてのコードを投稿するだけです。私は大学のスケジュールをコーディングしています。JSONファイルからテーブルを作成する必要があります。私は次のhtmlパーツ:pastebin.com/bczdjVEWを受け取ることを期待しています。 JSONからデータを受け取り、HTMLに変換するスクリプトを少し作った:pastebin.com/UK42sdBp。すべてのデータが正しく受信されましたが、htmlコードに挿入してjsファイルにhtmlを正しく再作成するのに問題があります。 – Ilikebigbugs

0

のように、.mapのいくつかの並べ替えを欠場returnと$要素でしょう構造が見ています次のshoudlはどこに行くか考えていますか?

var THeaders = ["#", "Monday", "Tuesday", "Wednesday", "Thurdsday", "Friday", "Saturday"]; 
 

 
var trid = $('#list'); 
 
$.each(THeaders, function(i, d){ 
 
    trid.append('<th>' + d + '</th>'); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table width="100%" cellpadding="1" cellspacing="1"> 
 
<tr id="list"> 
 

 
</tr> 
 
</table>

関連する問題