2

テーブルを作成中です。そして、マウスオーバーするまで<td>テーブルの属性classを変更する必要があります。someattribute

それはどうあるべきですか?

コード:

var table = document.createElement('table');
for (var i = 1; i <=10; i++)
{
    var tr = document.createElement('tr');
    tr.setAttribute('id',i)
    table.appendChild(tr);
    for (var j = 1; j <=15; j++)
    {
        var td = document.createElement('td');
        td.setAttribute('id',j);
        // Here:
        td.OnMouseOver = new function() 
        {
            td.setAttribute("class","new");
        };
        tr.appendChild(td);
    };
};

document.getElementById("grid").innerHTML = '';
document.getElementById("grid").appendChild(table);
4

3 に答える 3

0

あなたはかなり近いです。

関数にアクセスできないの代わりに、関数でキーワードを使用thisします。また、関数を定義するためにキーワードを使用する必要はありません。onmouseovertdnew

    td.onmouseover = function () {
        this.setAttribute("class", "new");
    };

コード:

var table = document.createElement('table');
for (var i = 1; i <= 10; i++) {
    var tr = document.createElement('tr');
    tr.setAttribute('id', i)
    table.appendChild(tr);
    for (var j = 1; j <= 15; j++) {
        var td = document.createElement('td');
        td.setAttribute('id', j);
        td.innerHTML = '&nbsp;';
        td.onmouseover = function () {
            this.setAttribute("class", "new");
        };
        tr.appendChild(td);
    };
};

document.getElementById("grid").innerHTML = '';
document.getElementById("grid").appendChild(table);

http://jsfiddle.net/samliew/VnkHB/10/

于 2013-04-13T16:01:00.740 に答える
0

jQuery を使用したい場合:

$('table td').mouseover(function() {
    $(this).addClass('new');
});

これにより、イベントのnew任意の<td>要素にクラスが追加されます。<table>mouseover

于 2013-04-13T16:05:35.317 に答える