0

各行に 2 つの要素が含まれるテーブルがあります。

<table>
<tr><td>A</td><td>B</td></tr>
<tr><td>C</td></tr>
</table>

「D」を含むセルを最後の行 (現在のテーブルに既に存在する 2 行目) に追加しようとしていますが、問題があります。

私は実行しようとしました:

$("table").children().get(1).append("<td>D</td>");

var elem = $("<td/>", {
    text: 'D'
});

$("table").children().get(1).appendChild(elem);

エラーが表示されます:

Uncaught Error: NotFoundError: DOM Exception 8 

そこに tbody を入れても機能しません:

$("table tbody").children().get(1).appendChild(elem);

これを行う適切な方法は何ですか?

別の要素「E」があると仮定して、「最後の td」だけに依存したくありません。 2行目。

4

3 に答える 3

2

試す:

$("table td:last").after("<td>D</td>");

jsFiddle の例

結果は次の構造になります。

<table>
<tbody><tr><td>A</td><td>B</td></tr>
<tr><td>C</td><td>D</td></tr>
</tbody></table>
于 2013-02-26T01:50:22.237 に答える
0

これを試して:

$('<td>D</td>').appendTo('table tr:eq(1)');
于 2013-02-26T01:58:39.757 に答える
0

既存の文字から次の文字を見つけて動的に追加できます。必要に応じて変更する必要がある場合があります。

HTML

<table>
    <tr>
        <td>A</td>
        <td>B</td>
    </tr>
    <tr>
        <td>C</td>
    </tr>
</table><button type="button" id="addanother" >Add</button>

JS:

$('#addanother').on('click',function(){
    var length=$('table').find('td:last').parent().children().length;
    var text=$('table').find('td:last').text();
     var nextlet=nextLetter(text);
    if(length == 2){
         $('table').find('tr:last').after('<tr><td>'+nextlet+'</td></tr>');
    }else if(length == 1){
           $('table').find('td:last').after('<td>'+nextlet+'</td>');
    }
  });

// To get alphabets from A-Z from a-z
  function nextLetter(s){
return s.replace(/([a-zA-Z])[^a-zA-Z]*$/, function(a){
    var c= a.charCodeAt(0);
    switch(c){
        case 90: return 'A';
        case 122: return 'a';
        default: return String.fromCharCode(++c);
    }
});

}

フィドラー: http://jsfiddle.net/j98H7/1/

于 2013-02-26T05:25:06.910 に答える