You can get all td elements, as you already did, and get span elements inside them:
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 only wants to remove the range if there is a td with the content βNoβ (also remove the td element)
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; }
source share