Ich muss zu .unbind()
allen Elementen von einem übergeordneten Knoten.
Wie kann ich alle Kinder (auf jeder Ebene) eines Elternteils auswählen?
Versucht:
$('#google_translate_element *').unbind('click');
aber es funktioniert nur für die ersten Kinderlevel ...
Hier gibt es einen Testfall
javascript
jquery
html
dom
markzzz
quelle
quelle
Antworten:
Verwenden Sie jQuery.find () , um Kinder zu finden, die mehr als eine Ebene tief sind.
$('#google_translate_element').find('*').unbind('click');
Du brauchst das
'*'
infind()
:quelle
Ich denke du könntest tun:
$('#google_translate_element').find('*').each(function(){ $(this).unbind('click'); });
aber es würde viel Overhead verursachen
quelle
Es scheint, dass der ursprüngliche Testfall falsch ist.
Ich kann bestätigen, dass der Selektor mit
#my_parent_element *
funktioniertunbind()
.Nehmen wir als Beispiel das folgende HTML:
<div id="#my_parent_element"> <div class="div1"> <div class="div2">hello</div> <div class="div3">my</div> </div> <div class="div4">name</div> <div class="div5"> <div class="div6">is</div> <div class="div7"> <div class="div8">marco</div> <div class="div9">(try and click on any word)!</div> </div> </div> </div> <button class="unbind">Now, click me and try again</button>
Und das jquery bisschen:
$('.div1,.div2,.div3,.div4,.div5,.div6,.div7,.div8,.div9').click(function() { alert('hi!'); }) $('button.unbind').click(function() { $('#my_parent_element *').unbind('click'); })
Sie können es hier versuchen: http://jsfiddle.net/fLvwbazk/7/
quelle