2017-05-23 2 views
0

Ich habe eine Checkbox, die Elemente unter <section> schaltet undjQuery finden zwei Arten von Kinder-Elemente

Ich versuche readonly Eingaben zu übernehmen und readonly auf Tasten und wählt, wie kann ich das auf jQuery Aussage erreichen in?

Wie kann ich jQuery find zweimal mit dem gleichen Selektor machen?

 $(this).parents('section') 
      .eq(0) 
      .find('input') <-- found all the inputs under <section> 
      .not('.cloud-media-toggle-inputs') 
      .prop('readonly', ! isChecked) 
      .find('select, button') <-- now I want to find all the <select>/<button> under <section> 
      .prop('disabled', ! isChecked); 
+0

Wie meinen Sie "finden zweimal" verketten? Es wird bereits alle passenden Elemente der Seite finden, so viele es auch gibt. Möchten Sie den Selektor jedes Mal ändern? – samiles

+0

Setzen Sie 'end()' nach dem ersten 'prop()', um die Auswahl zum 'section' Element zurückzubringen –

+0

@samiles Ich habe den Titel der Frage neu bearbeitet, hoffe, dass es jetzt klarer ist. – Broshi

Antwort

3

Sie müssen .end()

Beenden der letzten Filteroperation in der aktuellen Kette verwenden, und den Satz von abgestimmten Elementen in den vorherigen Zustand zurückzukehren.

$(this).parents('section') 
     .eq(0) 
     .find('input') 
     .not('.cloud-media-toggle-inputs') 
     .prop('readonly', !isChecked) 
     .end() //<=========== 
     .find('select, button') 
     .prop('disabled', !isChecked); 

Oder verwenden Sie nicht

var sectionFirstChild = $(this).parents('section').eq(0); 
sectionFirstChild.find('input:not(.cloud-media-toggle-inputs)').prop('readonly', !isChecked); 
sectionFirstChild.find('select, button').prop('disabled', !isChecked); 
+0

funktioniert für Eingaben, funktioniert nicht für select/button ... – Broshi

+0

@Broshi, Kannst du den HTML teilen? – Satpal

+0

nicht wirklich, es ist ein Teil einer Backend-Seite mit viel HTML ... ich werde es wieder angehen oder einfach eine doppelte jquery Suche machen – Broshi

Verwandte Themen