1

次のコードがあります。

var parentEls = node.parents() 
    .map(function () {

        var curParentID = this.getAttribute("id"); 
        var curParentClass = this.getAttribute("class");

        if(curParentID) {
            return this.tagName + "#" + curParentID;
            /*stop the map function from proceeding*/
        } else {
            return this.tagName;
        }
    })
    .get().reverse().join(", ");

上記のコードは、一意の ID の検索を見つけるのに役立ち、ID が見つかると、xpath を作成します。IDが取得され、マップ機能が停止する必要があるポイントに達したら、マップ機能を停止するにはどうすればよいですか? return false と break を試しましたが、うまくいきません。

他の提案はありますか?

4

2 に答える 2

1
   // parentsUntil() doesn't include the element specified by selector, 
   // so you need to add the closest ancestor with id attribute to the collection
   var parentEls = node.parentsUntil('[id]').add( node.closest('[id]') )
        .map(function () {
            return this.id ? '#' + this.id : this.tagName;
        })
        .get().join(", ");

フィドル (更新): http://jsfiddle.net/SKqhc/5/

于 2013-08-12T07:32:18.487 に答える