jQuery nextUntil include text nodes

后端 未结 2 1853
予麋鹿
予麋鹿 2020-12-06 13:30

I\'m using nextUntil method to get all stuff between two elements. But this method does not include text nodes to output. It gives an array like

2条回答
  •  心在旅途
    2020-12-06 14:00

    You can create your own jquery plugin which does the same as nextUntil but includes text nodes:

    $.fn.nextUntilWithTextNodes = function (until) {
        var matched = $.map(this, function (elem, i, until) {
            var matched = [];
            while ((elem = elem.nextSibling) && elem.nodeType !== 9) {
                if (elem.nodeType === 1 || elem.nodeType === 3) {
                    if (until && jQuery(elem).is(until)) {
                        break;
                    }
                    matched.push(elem);
                }
            }
            return matched;
        }, until);
    
        return this.pushStack(matched);
    };
    

    So you can call this nextUntilWithTextNodes instead of nextUntil and you are good to go.

提交回复
热议问题