क्या अगली बार आसानी से करने का कोई तरीका है, ताकि चयनकर्ता द्वारा मिलान किया गया तत्व शामिल हो?अगला jQuery, मिलान किए गए तत्व को छोड़कर, सहित, सहित?
$("#content").find("h3:first").prev().nextUntil("ul:last").wrapAll("<div id='collapse'></div>");
क्या अगली बार आसानी से करने का कोई तरीका है, ताकि चयनकर्ता द्वारा मिलान किया गया तत्व शामिल हो?अगला jQuery, मिलान किए गए तत्व को छोड़कर, सहित, सहित?
$("#content").find("h3:first").prev().nextUntil("ul:last").wrapAll("<div id='collapse'></div>");
.prev()
निकालें और अपने चयनकर्ता के अंत में .addBack()
का उपयोग के रूप में नीचे दिखाया गया है:
$("#content").find("h3:first").nextUntil("ul:last").addBack().wrapAll("<div id='collapse'></div>");
पूर्व 1.8 के बजाय addBack
इस पुराने प्रश्न पर कभी जवाब नहीं दिया गया था। एफवाईआई, अब कोई भी इसे जांच रहा है: "और स्वयं() - नोट: यह फ़ंक्शन बहिष्कृत कर दिया गया है और अब .addBack() के लिए उपनाम है, जिसका उपयोग jQuery 1.8 और बाद में किया जाना चाहिए।" – jwinn
मैंने अभी इस जवाब को आज खोजा है (21-07-2017) और इससे मुझे मेरी परियोजना में मदद मिली, ty – samouray
आप, बस का उपयोग कर सकते jQuery nextAll: मैं इस जो केवल ठीक है अगर वहाँ एक पिछले भाई है,।
'nextAll' में उस चयनकर्ता से मेल खाने वाले निम्न तत्व शामिल होंगे।
जबकि 'nextUntil' मिलान चयनकर्ता तत्व को बाहर कर दें।
"अगला" सिर्फ एक ही निम्नलिखित भाई को प्राप्त करता है, जबकि मैं परिभाषित अंत-बिंदु तक सभी भाई बहनों को पकड़ रहा हूं। – jwinn
हाँ आप सही हैं, मेरा जवाब बदल रहा है। –
-1: अगलीअसल से() रेफरी: मिलान किए गए तत्वों के सेट में प्रत्येक तत्व के प्रत्येक ** भाई बहनों को निम्नलिखित ** प्राप्त करें, वैकल्पिक रूप से एक चयनकर्ता द्वारा फ़िल्टर किया गया। , तो यह ** ** ** मिलान तत्व शामिल नहीं होगा। –
वैकल्पिक हल मैंने पाया length
का उपयोग कर nextUntil
(या prevUntil
), तो slice()
इस लंबाई + 1 के साथ nextAll()
पर उपयोग मिल गया था:
var inclusiveNextUntil = $(this).nextUntil('.some-class').length;
var inclusiveNextUntil = $(this).nextAll().slice(0 , inclusiveNextUntil + 1);
यह अनाड़ी है, लेकिन यह काम करता है। HTH
Fwiw in the nextAll docs Biziclop mentions+ *
जोड़ने:
$obj.nextUntil('.last-item-to-include + *')
लेकिन यह मेरे लिए काम नहीं करता है:/
यहाँ मैं क्या कर रहा है। मुझे लगता है कि यह अन्य सुझावों की तुलना में थोड़ा क्लीनर है।
var elearr = $('selector1').nextUntil('selector2');
var lastele = elearr[elearr.length-1];
elearr.push($(lastele).next());
var s = $("li.start").nextUntil("li.stop");
s = s.add(s.last().next()).add(s.first().prev());
//and do whatever you need to with s
सबसे सहज, मुझे लगता है कि andSelf
का उपयोग करना चाहिए । सभी jQuery विधियों के साथ बनाया गया। दो बार खोजने की आवश्यकता नहीं है। समझने में आसान और याद रखना आसान है।
मुझे लगता है कि सही जवाब
$("#content").find("h3:first").nextUntil("ul:last").addSelf().wrapAll("<div id='collapse'></div>");
आप अपने HTML मार्कअप के प्रासंगिक भागों के साथ अपने प्रश्न अद्यतन कर सकता हूँ है? इससे हमें यह समझने में मदद मिलेगी कि आप क्या हासिल करने की कोशिश कर रहे हैं। –