Функция удаления по содержанию что то не работает...
Написал функцию по удалению элемета по его содержанию (может у кого есть код лучшей реализации?), и когда подаю название контейнера ('сontainer'), тип елемента ('a'), значение ('Back to Home'), хочу тот элемент у которого такое значение - удалить, но что то не получаеться...
первый алерт выводит почему то: javascript:tpzDrillTable('var/L.back.msg', 'Back to Home', '204','',true) второй выводит весь искомый и третий выдает - Back to Home (что правильно наверно) Вопрос как правильно удалить такой элемент? Пробовал и внутрености чистить и удалять - срабатывет черт знает как и скрипт останавливаеться... демо пример: <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function DeleteIT(containerElementID, ElementType, SValue) { var trgElement = document.getElementById(containerElementID).getElementsByTagName(ElementType); var RpdT = trgElement.length; for (var i=0; i<RpdT; i++) { if (trgElement[i].outerHTML.replace(/<\/?[^>]+>/g, '') == SValue) { alert(trgElement[i]); alert(trgElement[i].outerHTML); alert(trgElement[i].innerHTML); trgElement[i].parentNode.removeChild(trgElement[i]); //trgElement[i].outerHTML = ""; } } } $(document).ready(function () { DeleteIT('container', 'a', 'Back to Home') }); </script> </head> <body> <div id="container"> <div id="1">Blabla</div> <a buttonid="204" id="X18Border" href="javascript:tpzDrillTable('var/L.back.msg', 'Back to Home', '204','',true)" title="Back to Home" tabindex="" content="Back to Home">Back to Home</a> <div id="N">bloblo</div> </div> </body> </html> |
Kvark, что-то не совсем понял. Что передаётся в DeleteLT? Покажите пример вызова Вашей функции.
|
я демо cделел только сохранить нажать забыл - теперь вот показывает
|
Kvark,
:cray: <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <!-- <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function DeleteIT(containerElementID, ElementType, SValue) { $("#"+containerElementID + " " + ElementType + ":contains(" + SValue + ")").remove() } $(document).ready(function () { DeleteIT('container', 'a', 'Back to Home') }); </script> </head> <body> <div id="container"> <div id="1">Blabla</div> <a buttonid="204" id="X18Border" href="javascript:tpzDrillTable('var/L.back.msg', 'Back to Home', '204','',true)" title="Back to Home" tabindex="" content="Back to Home">Back to Home</a> <div id="N">bloblo</div> </div> </body> </html> |
function removeByHTML(id, tag, content) { var a = document.getElementById(id).getElementsByTagName(tag); for(var i=0; i<a.length; i++) if(a[i].innerHTML == content) { a[i].parentNode.removeChild(a[i]); break; } } removeByHTML('container', 'a', 'Back to Home'); |
мне без джиквери нужно сделать :(
Руслан спасибо, с break; заработало! |
Ruslan_xDD,
Kvark, если элементов несколько их удаляют начиная с конца ноделиста. |
мне нужно удалить определенный элемент только, у которого значение между тегами определенное (даблирующие элементы убиваю) но с индексацией никак не разберусь - как то сложно когда она на лету меняеться...
|
Часовой пояс GMT +3, время: 22:26. |