मेरे पास एक पृष्ठ कई है div
के तरीके से है
<div id="{{ myId }}" class="typelist"><!-- content goes here --></div>
इसके अलावा, निम्नलिखित तरीकों से "लिंक" की एक सूची है:
<a href="#" onclick="showThis({{ myId }})">{{ myDescriptiveName }}</a>
संवाददाता JS-part इस तरह दिखता है:
function showThis(id) {
var divs = $("div.typelist");
divs.hide();
divs.find("#" + id).show();
}
मैं क्या करना चाहता हूं, आईडी के साथ div की खोज करें id
वर्तमान चयन में और इसे "दृश्यमान" पर टॉगल करें। मैं अब समझ गया हूँ, कि find()
केवल बच्चों और "पोते" के लिए खोज करता है, जो बताता है कि उपरोक्त अपेक्षा के अनुरूप काम क्यों नहीं करता है।
लेकिन, मुझे वांछित कैसे ठीक से मिलता है div
वर्तमान चयन के अंदर? Googling ने मुझे कोई उपयोगी जानकारी नहीं दी।
उत्तर:
उत्तर № 1 के लिए 4यह होना चाहिए
function showThis(id) {
var divs = $("div.typelist");
divs.hide();
$("#" + id).show();
//or divs.filter("#" + id).show();
//or divs.filter("[id="" + id + ""]").show();
}
जब आप उपयोग करते हैं .find (), यह वंशज के लिए लग रहा है divs
तत्वों, लेकिन आपके मामले में आप जिस तत्व की तलाश कर रहे हैं वह बीच में है divs
तत्वों।
इस मामले में आपको उपयोग करने की आवश्यकता है .filter () के बजाय .find (), लेकिन चूंकि इस मामले में आपके पास आईडी है तो आप सीधे उपयोग कर सकते हैं आईडी-चयनकर्ता
उत्तर № 2 के लिए 1
function showThis(id) {
var divs = $("div.typelist");
divs.hide();
$("#" + id, divs).show();
}
यह आपके चयन में आईडी की तलाश करता है। लेकिन आपकी आईडी वैसे भी अनोखी होनी चाहिए। तो अरुण पी जॉनी का जवाब सबसे अच्छा है।