javascript - Vad kan exakt orsaka ett "HIERARCHY_REQUEST_ERR: DOM Exception 3"-Fel?
Hur exakt förhåller det sig till jQuery? Jag vet att biblioteket använder inbyggda JavaScript-funktioner internt, men vad är det egentligen som det försöker göra när ett sådant problem uppstår?
Svar #1
Det betyder att du har försökt infoga en DOM-nod på en plats i DOM-trädet där den inte kan gå. Den vanligaste platsen jag ser detta är på Safari som inte tillåter följande:
document.appendChild(document.createElement('div'));
Generellt sett är detta bara ett misstag där detta faktiskt var avsett:
document.body.appendChild(document.createElement('div'));
Andra orsaker som ses i det vilda (sammanfattade från kommentarer):
- Du försöker lägga till en nod till sig själv
- Du försöker lägga till null till en nod
- Du försöker lägga till en nod på en textnod.
- Din HTML är ogiltig (t.ex. om du inte stänger din målnod)
- Webbläsaren tror att HTML:en du försöker lägga till är XML (lös genom att lägga till
<!doctype html>i din injicerade HTML, eller genom att specificera innehållstypen när du hämtar via XHR)
Svar #2
Om du får detta fel på grund av ett jquery ajax-anrop $.ajax
Då kan du behöva ange vad dataType är som kommer tillbaka från servern. Jag har åtgärdat svaret mycket genom att använda denna enkla egenskap.
$.ajax({
url: "URL_HERE",
dataType: "html",
success: function(response) {
$('#ELEMENT').html(response);
}
});
