jquery - 如何获取值

时间:2016-11-07 23:18:20

标签: javascript jquery html

假设我们有这个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 ..有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要从点击的元素<i>遍历DOM树,直到到达<tr>。幸运的是,jQuery有一种称为.closest()的方法。只需将想要匹配的选择器传递给它,它就会获得最接近的父元素。

在您的情况下,因为您想获得父<tr>,它看起来像

sections.click(function(){
    var id = jQuery(this).closest("tr").attr("id");