jquery遍历行获取span类和标题

时间:2012-04-19 09:16:52

标签: javascript jquery dom-traversal jquery-traversing

我有一个表,每行有一个id和几个包含跨度的td

e.g

<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遍历行并创建span类名和span值的键值数组时。

目前我可以单独找到每件事情,这非常麻烦。

4 个答案:

答案 0 :(得分: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>     

<强> CODE:

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

    return map;
}

getSpansData('row1');

Live DEMO

答案 1 :(得分:1)

function traverseRow(id) {
    var arr = {};
    $('td span', 'tr#' + id).each(function() {
        arr[this.className] = this.innerHTML;
    });
    return arr;
}

traverseRow('row');

答案 2 :(得分:0)

您应该发送代码示例以获得更准确的回复。试试这个:

var values = new Object();
$("#row").filter("td span").each(function(){
    values[$(this).attr("class")] = $(this).text();
});
alert(values.surname);

答案 3 :(得分:0)

var map = {};
$("#row_id td span").each(function() { 
  map[$(this).attr("class")] = $(this).html(); 
});