2011-11-09 20 views
3

例如:如何检测html元素是否可以被选择器描述?

<li class="list" id="first-list"></li> 

var li = document.getElementById("first-list"); 
matchSelector(li, "li.list"); // this should return true 

现在我的解决方案可以被描述为:

function matchSelector(element, selector){ 
    var all_matched_elements = $(selector); 
    return element in all_matched_elements 
} 

但很明显,这包括一些不必要的工作。
有没有更好的解决方案?

回答

3

您可以使用jQuery is方法。

是这样的:

var li = document.getElementById("first-list"); 
matchSelector(li, "li.list"); 

function matchSelector(element, selector){ 
    return $(element).is(selector); 
} 

工作实施例:http://jsfiddle.net/NqwxQ/

+0

很大。你知道我是否可以从JQuery中提取这个函数吗?因为我不能使用jQuery,而是使用Sizzle在我公司做选择器工作的框架。 – wong2

0

使用jQuery的.is(),以确定是否一个元件可以由指定的选择相匹配。该函数返回一个布尔值。

例如:

var $li = $("li"); 
$li.each(function() { 
    if ($(this).is(".list")) { 
     // Take action 
    } 
}); 
相关问题