使用javascript动态传递元素值

时间:2014-06-09 14:21:32

标签: javascript php jquery

我有一个循环显示带有类名的按钮,上面有javascript。我需要传递被点击的span的id。我的问题是因为那里的循环,我可以通过索引获取ID,但我想要得到的是动态点击按钮的id。

 while(...){
    <span class="id">'.$table["id"].'</span>
    <input type="button" class="edit"  value="Edit"/>
    }


$('.edit').on('click', function (e) {
    var x=document.getElementsByClassName("id")[0];
    var xx = x.innerHTML;

         $.fancybox({
             ...
         }
        });
});

3 个答案:

答案 0 :(得分:1)

听起来像你想要使用

var x = $(this).closest(“span”);

这应该会让你看到点击按钮旁边的范围。

答案 1 :(得分:0)

你能否只使用$(this)。在你的点击事件中? 你不需要这样做:

var x=document.getElementsByClassName("id")[0];

只是说

var x = $(this);

因为当点击事件发生时,你已经在你的元素上了。

希望它有所帮助! :)

答案 2 :(得分:0)

我会使用data attributes来传递变量,因此您只能将类保留为css样式。另外,如果你已经在使用jQuery,为什么不一直用它呢?

while(...){
<span class="id" data-id="id">'.$table["id"].'</span>
<input type="button" class="edit"  value="Edit" data-target="id"/>
}


$('.edit').on('click', function (e) {
    var data = $(this).data('target'); // Get the data-target attribute
    var target = $('*[data-id='+data+']'); // Find the matching span
    var xx = target.html(); // Get HTML from Span

     $.fancybox({
         ...
     }
    });
});