2016-03-04 66 views
1

我有以下代码:如何确定哪些选择器是从其余选择中选择的?

HTML:

// import jQuery 

<tr id = "tr_id"> 
    <td>something</td> 
    <td>something</td> 
</tr> 

<div> 
    <span class = "cls">something</span> 
    <a id="a_id" href="#">something</a> 
</div> 

的JavaScript:

var result; 
$("tr, .cls").on("click", function(){ 

    if (/* selector is "tr" */) { 
     result = $(this).attr("id"); 
    } else{ 
     result = $(this).closest("a").attr("id"); 
    } 

}); 

现在我想知道我可以写一个条件,这if声明?

if (/* selector is "tr" */) { 
+0

[发现使用jQuery元素的类型]的可能的复制(http://stackoverflow.com/questions/608410/finding-the - 类型的元素使用jquery) – IlGala

+1

'this.tagName'是一个非常快速的方式,如果你需要perf – dandavis

+0

@dandavis谢谢.. – stack

回答

2

尝试在此上下文中使用.is(selector)

$("tr, .cls").on("click", function(){ 
    var $this = $(this); 
    result = $this.is("tr") ? $this.attr("id") : $this.closest("a").attr("id"); 
}); 
+1

重新“_it有一个函数为everything_”,是的,这是甚至不是最大的问题;) – dandavis

+0

对不起,再次ping你,但实际上我的代码有点不同。可否请你告诉我如何在[this code](https://jsfiddle.net/to0zjLpo/)中使用'.is()'? – stack

+1

@stack它是好男人。干得好。 https://jsfiddle.net/to0zjLpo/1/在给出的代码中查看'.bind()'的用法。 –