Próbowałem tego wyszukać, ale nie znalazłem nawet nikogo z tym samym problemem.Nieoczekiwany ukryty element div pojawia się w pliku html
Do mojego zadania musiałem napisać kod javascript, który odczytałby cały tekst ze strony zewnętrznej (z tego samego katalogu), ale to nie jest problem. Problem pojawił się, gdy utworzyłem testowy plik html z losowym tekstem.
HTML kod
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<p> Just a random text.</p>
<h1> More of a random text</h1>
<p> And again, just testing the program.</p>
</body>
</html>
I ten kod jest wzięte z debuggera:
Image of html file as from Inspector
Problem Is My javascript code
czyta tekst z tej div
elementu i dołączyć tablicę słów, które mam.
Czy ktoś wie, dlaczego jest generowany ten div i jak się go pozbyć?
P. Próbowałem już tworzyć inne pliki html, ale tam też pojawia się div.
Dzięki w z góry!
EDIT:
To mój kod JS:
var externalPage;
var words = [];
var j = 0;
function indexOf(array, item) {
for (var i = 0; i < array.length; i++) {
if (array[i][0].toString() === item.toString()) return i;
}
return -1;
}
function clearNode(node) {
while (node.firstChild) {
node.removeChild(node.firstChild);
}
}
function sortNumerically(words) {
return words.sort(function(a,b){
return b[1] - a[1];
});
}
function sortAlphabetically(words) {
return words.sort();
}
function openFile(url) {
externalPage = window.open();
externalPage.location = url;
}
function extractWords(node) {
if (node.nodeType==Node.ELEMENT_NODE) {
for (var m = node.firstChild; m!=null; m = m.nextSibling)
extractWords(m);
}
else {
var value = node.nodeValue.trim();
value = value.split(/\s/);
for(var i = 0; i < value.length; i++) {
if(indexOf(words, value[i]) != -1) {
words[indexOf(words, value[i])][1] =
words[indexOf(words, value[i])][1] + 1;
} else if(value[i] != '') {
words.push([]);
words[j][0] = value[i];
words[j][1] = 1;
j++;
}
}
}
}
function populateTable(arr) {
var tbody = document.createElement('tbody');
clearNode(tbody);
for(var i = 0; i< words.length; i++) {
var tr = document.createElement('tr');
var tdW = document.createElement('td');
var tdF = document.createElement('td');
tdW.appendChild(document.createTextNode(arr[i][0]));
tdF.appendChild(document.createTextNode(arr[i][1]));
tr.appendChild(tdW);
tr.appendChild(tdF);
tbody.appendChild(tr);
}
document.getElementById('tableCounter').appendChild(tbody);
}
function generateArray(node) {
words = [];
j = 0;
extractWords(node, words);
alert(sortNumerically(words));
populateTable(words);
}
Czy możesz dodać swoją wersję Javascript. – Zze
Trudno w to uwierzyć, ponieważ w ogóle nie pracowałem z elementami div. –
Z jakich wtyczek korzystasz? Czy możesz pokazać nam nagłówek twojego html ze zrzutu ekranu? – DomeTune