repz,
var elems = document.querySelectorAll('tr input[value=""]');
elems.forEach(input => input.closest('tr:last-child') && input.closest('tr:last-child').parentNode && input.closest('tr:last-child').remove());
|
Да, так удаляются, но не все, например:
<tr id="tr_ACTIVE_FROM">
<td>
<div>
<input type="text" name="ACTIVE_FROM" size="22" value="">
<span></span>
</div></td>
</tr>
Вот этот вообще не удаляется, а те что удалились имели структуру <tr id="tr_PROPERTY"> <td></td> <td> ----------вот до этого места <table > <tbody> <tr> <td> <input value="" size="30" type="text"> <br> </td> </tr> </tbody> </table> </td> </tr> |
repz,
)))
var elems = document.querySelectorAll('tr>td>input[value=""]');
elems.forEach(input => {
var tr = input.parentNode.parentNode;
if(tr.tagName == 'TR' && tr.parentNode) tr.parentNode.removeChild(tr)
});
|
repz,
ок будем ползти циклом до tr ... |
рони,
Да. удалилось еще больше input, осталось правда этих два:
<tr id="tr_ACTIVE_FROM">
<td></td>
<td>
<div>
<input type="text" name="ACTIVE_FROM" size="22" value="">
<span></span>
</div></td>
</tr>
<tr id="tr_ACTIVE_TO">
<td></td>
<td>
<div>
<input type="text" name="ACTIVE_TO" size="22" value="">
<span ></span>
</div></td>
</tr>
А так все по прежнему, всмысле, все уже не удаляется, но и полностью строка тоже. |
repz,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.test td {
border: 1px solid red;
}
</style>
</head>
<body>
<table>
<tbody>
<tr id="tr_ACTIVE_FROM">
<td>
<div>
<input type="text" name="ACTIVE_FROM" size="22" value="">
<span></span>
</div>
</td>
</tr>
<tr id="tr_PROPERTY">
<td></td>
<td> ----------вот до этого места
<table>
<tbody>
<tr>
<td>
<input value="" size="30" type="text">
<br>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<script>
var elems = document.querySelectorAll('input[value=""]');
elems.forEach(input => {
while (input = input.parentNode) {
if (input.tagName == 'TR' && input.parentNode) {
input.parentNode.removeChild(input);
break;
}
}
});
</script>
</body>
</html>
|
рони,
В общем экспериментировал пол ночи, на чистом выдернутом html все , как часы работает. В составе работающего сайта удаляется тот самый <TR>. Думаю, дальше нет смысла тыкаться наугад, попробую разобрать все скрипты, что есть на сайте, мб один из них, что-то проверяет и потом удаляет. Ручное удаление через консоль <tr> - не приводит к автоудалению первого tr. Спасибо огромное за помощь. |
Пришла мысль, заметил, что после выполнения:
var elems = document.querySelectorAll('tr>td>input[value=""]');
elems.forEach(input => {
var tr = input.parentNode.parentNode;
if(tr.tagName == 'TR' && tr.parentNode) tr.parentNode.removeChild(tr)
});
Остается:
<tr>--------------------удалить вот это, если
<td></td>
<td>
<table>
<tbody>---------вот тут ничего нет
</tbody>
</table>
</td>
</tr>
Мб имеет смысл в два этапа, первый, что выше и второй найти все пустые <tbody> -? добраться до tr и удалить его. Что-то типа
var elems = document.querySelectorAll('table>tbody').length == 0;
[].forEach.call(elems, function (el) {console.log("find");
});
|
repz,
#26 пробовали? |
рони,
Конечно, тоже все сносит. |
| Часовой пояс GMT +3, время: 23:37. |