2015-12-16 14 views
6

enter image description hereJak usunąć bez td id

Witam Chcę usunąć „Czy służył w wojsku?” i "Nie", jeśli odpowiedź brzmi "Nie", ale kiedy "Tak", niż powinno się pokazać.

Cokolwiek Próbowałem, ale to nie działa

<script type="text/javascript"> 
(function(){ 
    for(i = 0; (a = document.getElementsByTagName("td")[i]); i++){ 
    if(document.getElementsByTagName("span")[i].innerHTML.indexOf('Have you served in the military') > -1){ 
    document.getElementsByTagName("td")[i].style.display = "none"; 
    } 
    } 
})(); 
</script> 
+6

Możesz znaleźć z identyfikatorem, a następnie znaleźć jego rodzica i go usunąć. – sagar43

+0

Wydaje się działać doskonale -> ** https: //jsfiddle.net/4g7rxm43/** – adeneo

Odpowiedz

0

można uzyskać wszystkie elementy td jak już zrobił i nie dostać elementy rozpiętości wewnątrz nich:

var tds = document.getElementsByTagName('TD'); 
for (var i = 0, l = tds.length; i != l; ++i) { 
    var spans = tds[i].getElementsByTagName('SPAN'); 
    for (var j = 0, l2 = spans.length; j != l2; ++j) { 
     var span = spans[j]; 
     if ((span.textContent = span.innerText).indexOf('Have you served in the military') != -1) { 
      span.style.display = 'none'; 
      break; 
     } 
    } 
} 

EDIT: OP chce usunąć tylko zakres, jeśli istnieje td z treścią "Nie" (również usuń element td)

var tds = document.getElementsByTagName('TD'); 
var tdsLength = tds.length; 

var answerNoFound = false; 
for (var i = 0; i != tdsLength; ++i) { 
    var td = tds[i]; 
    if ((td.textContent = td.innerText) == 'No') { 
     td.style.display = 'none'; 
     answerNoFound = true; 
     break; 
    } 
} 

if (answerNoFound) 
    for (var i = 0; i != tdsLength; ++i) { 
     var spanFound = false; 
     var spans = tds[i].getElementsByTagName('SPAN'); 
     for (var j = 0, l = spans.length; j != l; ++j) { 
      var span = spans[j]; 
      if ((span.textContent = span.innerText).indexOf('Have you served in the military') != -1) { 
       span.style.display = 'none'; 
       spanFound = true; 
       break; 
      } 
     } 
     if (spanFound) 
      break; 
    } 
+0

Muszę usunąć oba pytania i odpowiedzi, jeśli odpowiedź brzmi "Nie". "Nie" jest również w td, ale nie mam żadnego id po tym, że muszę usunąć oba –

+0

W przesłanym obrazie jest tylko element td z treścią "Tak", ale zmienię moją odpowiedź ... – DavidVollmers

0

Możesz użyć elementu potomnego elementu lub po prostu zastąpić lub nawet ukryć i pokazać znalezisko.

0

Wygląda jak masz formularz zgłoszeniowy i document prawdopodobnie ma więcej przęseł, niektóre poza td elementów, więc nie dostać prawidłowy wybór spans kontra td.

Podczas porównywania zawartości span najprawdopodobniej nie jest to span, które jest wewnątrz zapętlonego td.

<script type="text/javascript"> 
    (function(){ 
     for(i = 0; (a = document.getElementsByTagName("td")[i]); i++){ 
     if(a.getElementsByTagName("span")[0].innerHTML.indexOf('Have you served in the military') > -1){ 
      a.style.display = "none"; 
     } 
     } 
    })(); 
</script> 

Zmieniłem if wybrać span wewnątrz pętli td, że należy to zrobić.