jQuery 遍历 - end() 方法
实例
选择所有段落,找到这些段落中的 span 元素,然后将它们恢复为段落,并把段落设置为两像素的红色边框:
$("p").find("span").end().css("border", "2px red solid");
定义和用法
end() 方法结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态。
语法
.end()
详细说明
大多数 jQuery 的遍历方法会操作一个 jQuery 对象实例,并生成一个匹配不同 DOM 元素集的新对象。当发生这种情况时,应该会把新的元素集推入维持在对象中的堆栈内。每次成功的筛选方法调用都会把新元素推入堆栈中。如果我们需要老的元素集,可以使用 end() 从堆栈中弹出新集合。
ప్రారంభంలో పేజీలో ఒక చిన్న జాబితా జంట ఉంది:
<ul class="first"> <li class="foo">list item 1</li> <li>list item 2</li> <li class="bar">list item 3</li> </ul> <ul class="second"> <li class="foo">list item 1</li> <li>list item 2</li> <li class="bar">list item 3</li> </ul>
ఉదాహరణ 1
ప్రధానంగా జూలీ చైన్ చైన్ లింక్ స్పెషల్ అట్రిబ్యూట్ ఉపయోగిస్తున్నప్పుడు, జూలీ చైన్ చైన్ అనేది మంచిది. అయితే, కమాండ్ లింక్ లను ఉపయోగించకుండా, మామూలుగా ముంది ఆబ్జెక్ట్ ను వారి నామకరణం ద్వారా కాల్లను కాల్లబోతున్నాము, కాబట్టి మేము స్టాక్ ను కాల్లబోవలేము. అయితే, end() ద్వారా మేము అన్ని మెట్హడ్ కాల్లను సిక్వెన్షల్ గా చేయవచ్చు:
$('ul.first').find('.foo').css('background-color', 'red') .end().find('.bar').css('background-color', 'green');
ఈ కమాండ్ జాబితా మొదటి జాబితాలో క్లాస్ ను 'foo' గా ఉన్న ప్రతిపాదనను కనుగొంటుంది మరియు వాటి బ్యాక్గ్రౌండ్ కలర్ ను ఎరుపు గా చేస్తుంది. end() అనేది కారణంగా ఆబ్జెక్ట్ ను అంతకరచి పూర్వం యొక్క స్థితికి తిరిగి పోతుంది, కాబట్టి రెండవ find() అనేది <ul class="first"> లోని '.bar' ను కనుగొంటుంది మరియు కానీ జాబితా యొక్క <li class="foo"> లో ఉన్న క్లాస్ ను కనుగొంటుంది మరియు మేచ్ కలర్ బ్యాక్గ్రౌండ్ కలర్ ను ఎరుపు గా చేస్తుంది. చివరి ఫలితంగా మొదటి జాబితాలోని ప్రతిపాదనలు 1 మరియు 3 ని రంగు బ్యాక్గ్రౌండ్ కలర్ ను అందిస్తుంది మరియు రెండవ జాబితాలోని ప్రతిపాదనలు ఏ మార్పులు లేవు.
ఉదాహరణ 2
ఈ పొడవైన jQuery జాబితాను సంక్రమణాత్మక కోడ్ బ్లాక్ గా దృశ్యంలో చూపవచ్చు, స్క్రీన్ మెథడ్ బ్లాక్లను తెరిచి, end() మెథడ్ బ్లాక్లను మూసించడానికి ఉపయోగిస్తారు:
$('ul.first').find('.foo') .css('background-color', 'red') .end().find('.bar') .css('background-color', 'green') .end();
చివరకు ఈ end() అవసరం లేదు ఎందుకంటే మేము తరువాత ఈ jQuery ఆబ్జెక్ట్ ను తొలగించబోతున్నాము. అయితే, ఈ రీతిలో కోడ్ రాయడానికి, end() దృష్టికి ప్రామాణికతను అందిస్తుంది, మరియు కోడ్ నిర్వహణను ప్రామాణికతను అందిస్తుంది, కానీ అదనపు కాల్లను చేయాలి, కాబట్టి పనితీరు కొంచం పెరుగుతుంది.