| 
	
		
 Добраться до tr из input и не потерять все) 
		
		
		
		Добрый день. 
	В продолжении темы. Сделал аналог для input. 
var elems = document.querySelectorAll('input[value=""]');
elems.forEach(option => option.closest('tr').remove());
В итоге, удаляется самый первый <tr> и удаляет весь контент, как можно этого избежать? Можно ли по индексу например удалять все кроме 0 или как-то еще? Спасибо.  | 
	
		
 А нельзя использовать .not(':eq(0)') для отбора? 
	нашел вот такую конструкцию: 
Array.prototype.slice.call(document.querySelectorAll('input[value=""]'), 1)
    .forEach(elt => elt.parentNode.remove(elt))
Лучше, но все равно нужная часть удаляется) Так. как class tr содержит tr_ , то решил вычленить по нему, в моем случае все отработало, как надо: 
var elems = document.querySelectorAll('input[value=""]');
console.log(elems);
[].forEach.call(elems, function (el) {el.closest('[id*="tr_"]').remove();});
 | 
	
		
 Цитата: 
	
  | 
	
		
 Спасибо. 
	Не получается, closest ищет родителя родителя и получается, что все рано удаляет все содержимое. 
<tr> - вот это удаляем по факту, а не должны
       <td>
                <div>
                  <table>
                   <tbody>
                    <tr></tr>
                    <tr></tr>
                    <tr></tr>
                    <tr id="tr_"> <- а должно вот это
		       <td></td>
		       <td>
	                <div>
		         <input type="text" value=""> - ищем вот это 
	                </div>
                       </td>
                     </tr>
                    </tbody>
                   </table>
                 </div>
        </td>
</tr>
 | 
	
		
 Цитата: 
	
  | 
	
		
 Должен ближайший <tr> вверх удаляться, в данном примере <tr id="tr_">, но мб и не быть id. 
	Наверное надо пояснить - в песочнице работает так, как должно. Пытаюсь применить на локалке, удаляет, что не нужно. Вроде поиск жесткий и все равно где-то, что-то не так.  | 
	
		
 Цитата: 
	
 пробуйте 
var elems = document.querySelectorAll('input[value=""]');
elems.forEach(input => input.closest('tr:last-child').remove());
 | 
	
		
 В браузере вот такая ощибка. 
	Код: 
	Uncaught TypeError: Cannot read property 'remove' of null | 
	
		
 repz, 
	может у вас браузер устаревший или структура другая? здесь код ниже работает? 
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    td{
        border: 1px solid red;
    }
    </style>
</head>
<body>
<table><tr>
       <td> - вот это удаляем по факту, а не должны
                <div>
                  <table>
                   <tbody>
                    <tr><td>test</td></tr>
                    <tr><td>test</td></tr>
                    <tr><td>test</td></tr>
                    <tr id="tr_">
               <td>del <- а должно вот это  </td>
               <td>
                    <div>
                 <input type="text" value=""> - ищем вот это
                    </div>
                       </td>
                     </tr>
                    </tbody>
                   </table>
                 </div>
        </td>
</tr>
</table>
 <script>
var elems = document.querySelectorAll('input[value=""]');
elems.forEach(input => input.closest('tr:last-child').remove());
 </script>
</body>
</html>
 | 
	
		
 Вот версия: 
	Код: 
	Последняя версия Google Chrome уже установленаУдаляется 2 -ой tr. <table> <tbody> <tr></tr> <tr> <-Вот этот удаляется, а не хотелось бы. <td> <div> <form> <div> <div> <div> <div> <table> <tbody> <tr> <td></td> <td> <table> <tbody> <tr> <td> <input name="" value="" size="30" type="text"><br> </td> </tr> </tbody> </table> </td> </tr> <tr> <td></td> <td> <select name="" size="1"> <option value="" selected="">(нет)</option> <option value="">123</option> </select> </td> </tr> </tbody> </table> </div> </div> </div> </div> </form> </div> </td> </tr> </tbody> </table>  | 
| Часовой пояс GMT +3, время: 15:03. | 
		
  |