如何在jquery函数中传递运行时参数?

时间:2012-05-21 13:00:05

标签: javascript jquery html

我是jquery的新手。我的要求是在jquery函数中传递rowid(表的每个记录的唯一id)。我只能在运行时获得rowid。那么如何将click事件绑定到id为此rowid的标记。

<a href="javascript:void(0)" id="`string(rowid(Gatepass))`">Upd</a>
<a href="javascript:void(0)" id="`string(rowid(Gatepass))`">Del</a>

$(what to pass here).bind('click',function(ev) {
    _operation(para1,para2); // function which is going to perfom action
    ev.preventDefault();
    return false;
});

4 个答案:

答案 0 :(得分:0)

如果id来自服务器动态,则在函数内部为id selctor设置相同的id + hash

$(what to pass here) => $("'#" + string(rowid(Gatepass)) + "'")

答案 1 :(得分:0)

如果ID之间有任何相似之处,您可以使用其中一个属性选择器,例如:

ID包含

$('[id*="something"]')

ID以

开头
$('[id^="something"]')

http://api.jquery.com/category/selectors/

更好的方法是将所有动态命名的锚点放入容器中,然后选择:

<div id="container">
    <a ...></a>
    <a ...></a>
</div>

然后你会选择所有子锚:

$('#container > a').click(...);

答案 2 :(得分:0)

很难从如此少的HTML代码中找到一个好的选择器。如果可能,请在您的标记上使用类:

<a class="roww" href="javascript:void(0)" id="`string(rowid(Gatepass))`">Upd</a>
<a class="roww" href="javascript:void(0)" id="`string(rowid(Gatepass))`">Del</a>

然后您可以使用$('。roww')来查询您的节点。

以下是从事件处理程序获取id的方法:

function( ev ) {
   //wrap the element with jQ:
   var jel = $(this);
   //Then access attributes with .attr() getter:
   var id = jel.attr('id');

   ... //do whatever you want now.
   ... // there's a quicker alternative to get the id without jQuery, simply: 
   ... // var id = this.id
}

答案 3 :(得分:0)

获取id,并根据id做你想做的任何事情

  $('a').on('click',function(){

    var id = $(this).attr('id');

   if(id == //what you want)
   {
      //function 1
   } 
   else
   {
      //function 2
   }     

    return false;

    });