从对象获取数据

时间:2014-05-08 09:42:37

标签: javascript jquery

在某些地方我需要tr:

中数据标签的值
<tr data-something="1234" data-somethingmore="56789">
    <td>blabla</td>
    <td><img src="edit"></td>
</tr>

我正在使用以下click-Event打开一个jquery-ui对话框。这非常好,但我需要在数据数组中使用相同描述的其他表中的相同数据标记来打开相同的对话框。

$( "#artikelposition" )
    .on( "click", "img", function(e){
        e.preventDefault();

        var data = [];

        data['something']               = $( this ).closest( "tr" ).data( "something" );
        data['somethingmore']           = $( this ).closest( "tr" ).data( "somethingmore" );
        openDialogArticle( data, "edit");

    });

我添加了以下功能:

function getArticleData( tablerow )
{
    var data = [];

    data['something']             = tablerow.data( "something" );
    data['somethingmore']         = tablerow.data( "somethingmore" );
    console.log( tablerow );
    console.log( "from function: " + data );

}


$( "#artikelposition" )
    .on( "click", "img", function(e){
        e.preventDefault();

        getArticleData( $( this ).closest( "tr" ), "edit"  );

        openDialogArticle( data, "edit");

    });

现在数据为空

如何从tablerow-object获取数据标记? console.log(tablerow)打印对象。

1 个答案:

答案 0 :(得分:0)

您已将变量data设置为getArticleData函数的本地变量,因此如果您想使用它,则需要在函数结束时返回它:

function getArticleData( tablerow )
{
    var data = [];

    data['something']             = tablerow.data( "something" );
    data['somethingmore']         = tablerow.data( "somethingmore" );
    console.log( tablerow );
    console.log( "from function: " + data );

    return data;
}

然后在你的点击功能中:

$( "#artikelposition" ).on( "click", "img", function(e){
    e.preventDefault();

    var data = getArticleData($( this ).closest( "tr" ));

    openDialogArticle( data, "edit");
});

请注意我已删除了"edit",因为您的getArticleData函数只期待表格行