Ich habe auf einer Seite mehrere div
s in der Art von
<div id="{{ myId }}" class="typelist"><!-- content goes here --></div>
Es gibt auch eine Liste von "Links" auf folgende Weise:
<a href="#" onclick="showThis({{ myId }})">{{ myDescriptiveName }}</a>
Der entsprechende JS-Teil sieht folgendermaßen aus:
function showThis(id) {
var divs = $("div.typelist");
divs.hide();
divs.find("#" + id).show();
}
Was ich tun möchte, ist, mit der ID nach dem Div zu suchen id
in der aktuellen Auswahl und schalte es auf "sichtbar". Das habe ich jetzt verstanden find()
sucht nur nach Kindern und "Enkelkindern", was erklärt, warum das oben genannte nicht wie erwartet funktioniert.
Aber wie finde ich das gewünschte richtig div
innerhalb der aktuellen Auswahl? Googeln brachte mir keine hilfreichen Informationen.
Antworten:
4 für die Antwort № 1Es sollte sein
function showThis(id) {
var divs = $("div.typelist");
divs.hide();
$("#" + id).show();
//or divs.filter("#" + id).show();
//or divs.filter("[id="" + id + ""]").show();
}
wenn du benutzt .finden()Es sucht die Nachkommen der divs
Elemente, aber in Ihrem Fall ist das Element, das Sie suchen, unter den divs
Elemente.
In diesem Fall müssen Sie verwenden .Filter() Anstatt von .finden(), aber da Sie in diesem Fall eine ID haben, können Sie die direkt verwenden ID-Selektor
1 für die Antwort № 2
function showThis(id) {
var divs = $("div.typelist");
divs.hide();
$("#" + id, divs).show();
}
Dies sucht nach der ID in Ihrer Auswahl. Aber Ihre ID sollte trotzdem eindeutig sein. Also ist die Antwort von Arun P Johny die beste.