Функция удаления по содержанию что то не работает...
Написал функцию по удалению элемета по его содержанию (может у кого есть код лучшей реализации?), и когда подаю название контейнера ('с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, время: 07:26. |