2010-11-26 183 views

回答

10

大多數瀏覽器支持document.evaluate()用於選擇具有XPath表達式的元素 - 不需要jQuery。唯一缺乏支持的主要瀏覽器是Internet Explorer。 Dimitri Glazkov有created a library,但是會爲IE實現缺失的功能。

var result = document.evaluate("//a[@href='#']", document, null, 0, null), 
    item; 

while (item = result.iterateNext()) { 
    // item will be an <a> element with href="#" here 
} 

你可以很容易地創建一個插件來包裝這個功能太:

(function($) { 
    $.xpath = function(exp, ctxt) { 
     var item, coll = [], 
      result = document.evaluate(exp, ctxt || document, null, 5, null); 

     while (item = result.iterateNext()) 
      coll.push(item); 

     return $(coll); 
    } 
})(jQuery); 

// And call it like so: 
$.xpath("//a[@href='#']").click(function() { return false; }); 
+0

一個更好的解決方案如下所示http://stackoverflow.com/questions/2068272/getting-a-jquery-selector -for-an-element,你可以直接使用這個字符串作爲本機的CSS選擇器 – Michael 2013-06-02 19:40:53