如何在单击时获取Jquery行ID

时间:2010-04-28 20:08:19

标签: jquery

 var value;
    $("#Grid1").click(function(e) {
            var row = jQuery(e.target).parent();
            value= row.attr("id");
        });
        var onrowclick = function() {
        ("#Grid1").click($("#showgrid").load('/Names/Friends/satish/' +  value));
    };

我正在尝试在网址上发送值。

当我这样给出时,我没有得到输出结果。 我这样做了吗?

我在同一网格上处理点击事件的问题是两次吗?

4 个答案:

答案 0 :(得分:2)

很难说没有看到HTML,但我认为你正在尝试这样做:

// Initialize variables outside of the handler
var row;
var value;

$("#Grid1").click(function(e) {
    // Assign values to variables when event handler fires
    row = jQuery(e.target).closest('tr');
    value= row.attr("id");
    $("#showgrid").load('/Names/Friends/satish/' +  value);
});

// Now you can access the local variables

function someFunction() {
    alert(value);
    alert(row.get(0));
}

我将parent()更改为closest(),因为我不知道您的HTML结构。


修改

为清楚起见,我假设#Grid1是某种容器(也许是table),而您正在点击tr内容中的某些内容。 #showgrid是容器外部的一个单独组件,用于显示其他信息。

修改

我将从您的评论中假设您需要从处理程序外部访问行元素和/或ID。我已经更新了示例,以反映如何做到这一点。如果那不是你的意思,请告诉我。

答案 1 :(得分:1)

更新:回复您的评论:

如果要在click事件之外分配变量,可以执行以下操作:

$(function () {
  // declare the variable.. this one will hold the parent id
  var my_value;
    // now the click event...
    $("#Grid1").click(function(e) {
             e.preventDefault();
             // my_value now is setted outside...
             my_value = $(this).parent().attr("id");
         });

  // now for the example we observe the click event you can use it in other way!

    $('#Grid1').bind( 'click' , function() { 
      // now as you can see we are using my_value that come from outside!
     $('#showgrid').load('/Names/Friends/satish/' + my_value );

    });

});

附加说明

现在我不知道#Grid1是否在#showgrid内,但如果是这种情况,则需要使用live()方法!

像这样:

$("#Grid1").live( 'click' , function(e) {
// do something here as above...!
});

假设:

<div id="this_is_parent_of_Grid1">
<a id="Grid1" href="">click</a>
</div>
如果您使用表格

,则

<table><tr>
<td id="this_is_parent_of_Grid1"><a id="Grid1">click</a></td>
</tr></table>

答案 2 :(得分:0)

你需要做什么?

var value;

$("#rowid").click(function() {
    value = $(this).value();
});

或者您可以尝试这样的事情:

var value;

$("#rowid").click(function() {
    value = $(this).value();
    $("#showgrid").html( $.load("/Names/Friends/Satish/" + value) );
});

答案 3 :(得分:0)

为什么不使用以下内容?

$("#Grid1").click(function(e) {
         var value= $(e.target).parent().attr("id");
         $("#Grid1").load('/Names/Friends/satish/' +  value);
     });
};

此代码仍然很脆弱,但可能会更多地满足您的需求。