1
<rows>
<row id='1'>    // parent
<cell>1</cell>
<cell>Task ABC0134</cell>

<row id="2"> // parent
<cell>1</cell>
<cell>Task ABC0134</cell>
</row>

<row id="3"> // parent
<cell>1</cell>
<cell>Task ABC0135</cell>
</row>

<row id="4"> // parent
<cell>1</cell>
<cell>Task ABC0136</cell>
</row>
</row>

上記の XML ファイルを解析し、それを HTML テーブルに追加します。

それを解析するコードを見つけました

$(this).find('cell').each(function(){});

しかし、それはそれが含む細胞全体を私に与えました. 最初の行のセルを取得したいのですが、その行はすべてのセルの親です。

その細胞を別々に取る方法。

4

1 に答える 1

0

ソリューションとコード (コード コメントでの説明)

//xml init
var xml = "<rows><row id='1'><cell>1</cell><cell>Task ABC0134</cell><row id='2'><cell>1</cell><cell>Task ABC0134</cell></row><row id='3'> <cell>1</cell><cell>Task ABC0135</cell></row><row id='4'><cell>1</cell><cell>Task ABC0136</cell></row></row>"

//get the first row's id - used for comparison later
var firstRowId = $(xml).find("row:first").attr("id");
//create "tr" string - for appending to table later
var tr = "<tr>";
//iterate over each <cell>
var cells = $(xml).find("cell").each(function (i) {
    //check if current cell's parent (<row>) 's id matches firstRowId
    if ($(this).parent("row").attr("id") === firstRowId) {
        //if yes go in, create <td>
        tr += "<td>" + $(this).text() + "</td>";
    }
});
//finish the string
tr += "</tr>";
//apend to table
$("table").append(tr);

デモ: http://jsfiddle.net/hungerpain/Uf95P/

于 2013-08-03T07:59:59.013 に答える