Вот решение, которое удаляет дочерние элементы первого уровня с указанным именем для родителя с указанным идентификатором. Если вы хотите пойти глубже, вы можете рекурсивно вызвать его для дочерних элементов, которые вы попадаете внутрь (вам также нужно добавить параметр parent
).
function removeChildren (params){
var parentId = params.parentId;
var childName = params.childName;
var childNodes = document.getElementById(parentId).childNodes;
for(var i=childNodes.length-1;i >= 0;i--){
var childNode = childNodes[i];
if(childNode.name == 'foo'){
childNode.parentNode.removeChild(childNode);
}
}
}
И назвать это:
removeChildren({parentId:'div1',childName:'foo'});
и скрипка для тестирования:
Примечания. Вы можете получить доступ к элементу имени только в JavaScript, если он поддерживается вашим элементом (например, НЕ в DIV!). Смотри здесь почему.
UPDATE:
Здесь - решение с использованием className, основанное на нашем разговоре:
function removeChildren (params){
var parentId = params.parentId;
var childName = params.childName;
var childNodesToRemove = document.getElementById(parentId).getElementsByClassName('foo');
for(var i=childNodesToRemove.length-1;i >= 0;i--){
var childNode = childNodesToRemove[i];
childNode.parentNode.removeChild(childNode);
}
}