获取jQuery对象引用

时间:2013-06-05 15:37:05

标签: javascript jquery

在我的代码的某处,我有以下几行,我无法改变:

<div class="list-clickable" onclick="javascript:update_left_frame('1', $(this));">
<div class="list-clickable" onclick="javascript:update_left_frame('2', $(this));">
<div class="list-clickable" onclick="javascript:update_left_frame('3', $(this));">
// etc...

稍后几行代码,我需要调用相同的函数,以便更新左框架。这是通过PHP传递一个变量号作为第一个参数生成的:

<script>
  // foo = ??
  update_left_frame('3', foo);
</script>

我需要获得具有相同数字的块的引用,在此示例中为3。如何设置&#39; foo&#39; var以便它采用相应的块引用?我虽然得到了:

$('.list-clickable').attr('onclick') 

但是我无法让它发挥作用。

提前致谢!

4 个答案:

答案 0 :(得分:1)

应该是

$('.list-clickable').attr('onclick');

如果你能给这个号码做这样的事情

update_left_frame('3', 
  $('div').filter(function() {
    return this.attr('onclick').match(/update_left_frame\(\'3\'/); //same number as first argument
  })
);

答案 1 :(得分:1)

试试这个:

$('.list-clickable').on('click', function(){
    update_left_frame(($(this).index() + 1), $(this));
});

答案 2 :(得分:0)

尝试为每个div元素设置一个id ...

<div id="list-clickable1" class="list-clickable" onclick="javascript:update_left_frame('1', $(this));">
<div id="list-clickable2" class="list-clickable" onclick="javascript:update_left_frame('2', $(this));">
<div id="list-clickable3" class="list-clickable" onclick="javascript:update_left_frame('3', $(this));">
// etc...

然后要获得对div的引用,请使用 $('。list-clickable3'),如下例所示:

<script>
  var ctrl = $('.list-clickable3');
  aggiorna_left_frame('3', ctrl);
</script>

答案 3 :(得分:0)

好的,我找到了一个效果很好的解决方案。 我让PHP生成这个:

$(document).ready(function() {
    var foo;
    $('.list-clickable').each(function() {
        var attr = $(this).attr('onclick');
        if (attr.indexOf('frame(3') !== -1) {
            foo = $(this);
        }
    });
    update_left_frame('MY_CODE', foo);
});