var wewRopozy = getElementsByTagName('a')[0].getElementsByClassName('stat')[0];
Nie działa, przerywa wykonywanie skryptu. Dlaczego i co zrobić żeby działało?
var wewRopozy = getElementsByTagName('a')[0].getElementsByClassName('stat')[0];
Nie działa, przerywa wykonywanie skryptu. Dlaczego i co zrobić żeby działało?
np z powodu że:
getElementsByTagName(‘a’)
zwraca nie tablice zaś jeden element.
Ja chcę przypisać fragment węzła DOM do późniejszego wykorzystania, traktuje to jako fragment linku:
document.getElementById('watch-related').getElementsByClassName('video-list-item')[0].wewRopozy
Pudło. Właśnie, że zwraca tablicę wszystkich tagów ‘a’ w dokumencie. http://www.w3schools.com/jsref/met_doc_ … agname.asp
Problem jest w tym, że metoda getElementsByClassName nie jest zaimplementowana we wszystkich przeglądarkach. Według quirksmode.org nie ma jej w internet exploderze. Może chcesz skorzystać z http://code.google.com/p/getelementsbyclassname/?
Ja to używam tylko na Firefoksie, gdybym użył tego tak:
document.getElementById('watch-related').getElementsByClassName('video-list-item')[0].getElementsByTagName('a')[0].getElementsByClassName('stat')[0];
To by zadziałało!
Samo przypisanie fragmentu węzła do zmiennej przerywa wykonanie skryptu.
Nie wiem czy to ma znaczenie: używam go do Greasemonkey.
Chcesz pobrać co? Bo ja widzę samą sprzeczność i dlatego przerywa szukanie. W pierwszym przykładzie szuka pierwszego wystąpienia tagu A, a w nim szuka pierwszego wystąpienia klasy ‘stat’, więc jak nie znajduje, kończy :). W drugim przypadku jest podobnie.
Opisz dokładnie czego szukasz i pokaż w czym, czyli wklej kawałek kodu html :).
To jest skrypt do YouTube (podstrona z odtwarzaczem, np.
) a jego funkcja to:// kropki i odmiana "wyświetlenia" w proponowanych
function kropiOdmien(ropozycji, wewRopozy){
var ablicy = ropozycji.length;
ablicy -= 1;
for (nrp=0; nrp<=ablicy; nrp++) {
var wyspodwar = ropozycji[nrp].wewRopozy.firstChild.nodeValue;
var znakiwyspod = wyspodwar.length;
var powys = wyspodwar.substring(14, znakiwyspod);
wyspod.firstChild.nodeValue = kropcosto(powys, ".");
//odmiana wyświetlenia
wyspod.firstChild.nodeValue += hawuce(powys);
}
}
var ropozycji = document.getElementById('watch-related').getElementsByClassName('video-list-item');
var wewRopozy = getElementsByTagName('a')[0].getElementsByClassName('stat')[0];alert('/cenzura/');
kropiOdmien(ropozycji, wewRopozy);
Te dwie części są rozdzielone, ponieważ używam tej funkcji również w innym miejscu a muszę najpierw określić liczbę klas “video-list-item”.
W ten sposób nie możesz przypisać węzła DOM, bo skrypt już na wstępie próbuje znaleźć element :). Należałoby użyć funkcji eval(), a jeśli chcesz pobrać tylko same liczby, a resztę wycinając, to użyj replace() i wyrażenia regularnego. Poniżej masz przykład, a resztę kodu sobie sam dopiszesz :):
PS
Zmienna ‘wyspod’ jest undefined. Co miałeś zamiar z tym zrobić ;P?
wyspod był kiedyś połączonym ropozycji[nrp].dalsza część adresu.