在我的代码的某处,我有以下几行,我无法改变:
<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')
但是我无法让它发挥作用。
提前致谢!
答案 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);
});