0

私はテーブルを持っています各行にはIDがあり、スパンを含むいくつかのtdがあります

例えば

<tr id="row"><td><span class="first name">myfirstname<span class="surname">mysurname</span></td><td><span class="street">mystreet</span><span class="town">mytown</span></td>

私がしたくないのは、rowid が渡されたときに行をトラバースし、スパン クラス名とスパン値のキー値配列を作成することです。

現在、私はそれぞれのものを個別に見つけることができますが、これは非常に面倒です.

4

4 に答える 4

2

マークアップを少し修正する必要があります。

<table>
    <tr id="row1">
        <td>
            <span class="first name">myfirstname </span>
            <span class="surname">mysurname</span>
            </td>
                <td>
                    <span class="street">mystreet</span>
                    <span class="town">mytown</span>
        </td>
    </tr>
</table>

<span>とを閉じていません<tr> </p>

コード:

function getSpansData(rowId) {
    var map = {};
    $('#' + rowId + ' span').each(function() {
        map[this.className] = this.innerHTML;
    });

    return map;
}

getSpansData('row1');

ライブデモ

于 2012-04-19T09:30:59.193 に答える
1
function traverseRow(id) {
    var arr = {};
    $('td span', 'tr#' + id).each(function() {
        arr[this.className] = this.innerHTML;
    });
    return arr;
}

traverseRow('row');
于 2012-04-19T09:28:13.333 に答える
0

より正確な応答を得るには、コード サンプルを送信する必要があります。これを試して:

var values = new Object();
$("#row").filter("td span").each(function(){
    values[$(this).attr("class")] = $(this).text();
});
alert(values.surname);
于 2012-04-19T09:28:11.097 に答える
0
var map = {};
$("#row_id td span").each(function() { 
  map[$(this).attr("class")] = $(this).html(); 
});
于 2012-04-19T09:34:40.277 に答える