2010-09-09 13 views
13

मैं एक तरीका खोज रहा हूं कि मैं एक div तत्व का चयन कैसे कर सकता हूं जो कि "चयनित" एक क्लिक समारोह।Jquery तत्व 2 पदों का चयन करें - .next()। अगला()

<div id="click">(siblings)</div><div>text</div><div id="get this one"></div> 

अब मैं आईडी के साथ एक को चुनना चाहता हूं "इसे प्राप्त करें" - मेरे कोड में यह आईडी उपलब्ध नहीं है। सभी divs एक ही कक्षा है और भाई बहन है।
मैं $(this).next().next() द्वारा तीसरा एक चुन सकता हूं लेकिन मुझे लगता है कि यह करने का सबसे अच्छा तरीका नहीं है।
इसके अलावा क्लिक किए जाने से पहले div एस भी हो सकता है - इसलिए यह आवश्यक नहीं है।

मैंने :nth-child चयनकर्ता की कोशिश की लेकिन समाधान नहीं मिला।
बाद में मैं क्लिक एक के बाद 13 वें स्थान पर चयन करना चाहूंगा (या 23 वां, 65 वां और इसी तरह)। इसका मतलब है कि मैं इस समस्या के बजाय एक गतिशील समाधान करना चाहता हूं।

आपकी मदद के लिए धन्यवाद,
फिल

उत्तर

20

आप .nextAll().eq() से अपने डायनामिक दृष्टिकोण के लिए इस तरह उपयोग कर सकते हैं,:

$(this).nextAll().eq(1) //0 based index, this would be .next().next() 

यह आपको n भाई बहन आगे प्राप्त करने की अनुमति होगी जो लगता है कि आप क्या कर रहे हैं।

+0

ठीक है, अब मैं एक विचारधारा की तरह महसूस करता हूं। यह इतना आसान है - और यह निश्चित रूप से काम करता है। यह इतना समझ में आता है कि मैं इसे मुझसे नफरत नहीं करने के लिए नफरत करता हूं। लेकिन आपको बहुत बहुत धन्यवाद :) – Phil

0

ऐसा लगता है कि $(this).parent().find('div').eq(2).attr('id') काम करना चाहिए।

अद्यतन (जोड़ी खोजने ('div'))

+0

यह हमेशा एक खाली तत्व सेट में परिणाम देगा, '। माता-पिता()' एक तत्व का चयन करता है, भाई बहन नहीं :) –

+0

इससे पहले, आपके उत्तर में अगला ('eq: 2') था। क्या यह वैसे ही काम करेगा जैसा आपके उत्तर के लिए आपके पास है? क्या फर्क पड़ता है? – d2burke

+0

@ d2burke - आपको माता-पिता में तीसरा तत्व मिल रहा है इससे कोई फर्क नहीं पड़ता कि ... यह * वर्तमान * तत्व के सापेक्ष नहीं है, यह केवल तीसरा है, चाहे आप क्लिक करें। इसके अलावा मेरा जवाब दूसरे के लिए ': eq (1)' था, यह 0-आधारित इंडेक्स है :) –

संबंधित मुद्दे