假设我们有这个HTML代码:
<tr>
<td><a href="#depend"><i id="damage-file" class="fa fa-group">test1</i></a></td>
<td><a href="#depend"><i id="damage-file" class="fa fa-group">test2</i></a></td>
</tr>
<tr>
<td><a href="#depend"><i id="damage-file" class="fa fa-group">test3</i></a></td>
<td><a href="#depend"><i id="damage-file" class="fa fa-group">test4</i></a></td>
</tr>
每当我点击其中一个链接时,jquery代码就会运行,这里是jquery:
$(document).ready(function(){
//References
var sections = $("i");
var loading = $("#loading");
var content = $("#ajax-box");
var id = 2 // <= this should be the value of tr
sections.click(function(){
showLoading();
switch(this.id){
case "damage-file":
content.slideToggle();
content.load("./sections.php #section_home",{'userdata':id}, hideLoading);
break;
case "depend-people":
content.slideToggle();
content.load("./sections.php #section_people", hideLoading);
break;
default:
//hide loading bar if there is no selected section
hideLoading();
break;
}
});
//show loading bar
function showLoading(){
loading
.css({visibility:"visible"})
.css({opacity:"1"})
.css({display:"block"})
;
}
function hideLoading(){
loading.fadeTo(1000, 0);
};
});
(如你所见,我使用jquery加载另一页)
每个“tr”标签都有一个数字,我希望当我点击任何链接(进入“tr”)时,该数字转到jquery&gt;&gt; “var id”。例如,这是一个代码:
<tr id="123">
<td><a href="#depend"><i id="damage-file" class="fa fa-group">test1</i></a></td>
</tr>
<tr id="456">
<td><a href="#depend"><i id="damage-file" class="fa fa-group">test2</i></a></td>
</tr>
当我点击“test1”时,id = 123应该转到jquery作为值,如果我点击“test2”,那么id = 456作为值进入jquery ..有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
您需要从点击的元素<i>
遍历DOM树,直到到达<tr>
。幸运的是,jQuery有一种称为.closest()
的方法。只需将想要匹配的选择器传递给它,它就会获得最接近的父元素。
在您的情况下,因为您想获得父<tr>
,它看起来像
sections.click(function(){
var id = jQuery(this).closest("tr").attr("id");