Вход

Просмотр полной версии : как сделать вывод содержимое тэга на js??


jsProger
25.03.2012, 19:19
Доброго времени суток!
Столкнулся с проблемой, пишу скрипт по поиску последней записи любого тэга в html, предполагалось код будет выглядеть так:

function tagName (name) {
return document.getElementsByTagName(name);
};// создаю распаковывающую функцию по поиску тэга в DOM'е

//предположим хочу найти последнюю запись в тэге "LI"
function search () {
var li = tagName("LI");
for(var i=0; i<li.length; i++) {
alert(li[i].lastChild.innerHTML);
};
//казалось бы, цикл обшаривает и считает все существующие тэги "LI", конечное условие выводит сообщением с lastChild и выводит содержимое последнего "LI" с innerHTML (value, как оказалось, выводит только значения тэгов типа "input" и т.д.) Но увы не работает, пишет undefined...

};

Чтобы могло быть?? подскажите пожалуйста народ!!

Раед
25.03.2012, 19:53
function tagName (name) {
return document.getElementsByTagName(name);
}
function search () {
var li = tagName("LI");
for(var i=0; i<li.length; i++) {
var x=li[i].getElementsByTagName('*');
alert(x[x.length-1].innerHTML);
};

};
Не совсем понял, что вам нужно, но вроде так

Rootpassword
25.03.2012, 19:56
lastChild то зачем? Уберите его и все заработает-выведет весь контент всех li по очереди. а если вам нужен последний li-так это
li[li.length-1]
без цикла

jsProger
25.03.2012, 20:03
function tagName (name) {
return document.getElementsByTagName(name);
}
function search () {
var li = tagName("LI");
for(var i=0; i<li.length; i++) {
var x=li[i].getElementsByTagName('*');
alert(x[x.length-1].innerHTML);
};

};
Не совсем понял, что вам нужно, но вроде так

Да вроде логично по вашему, но загоняю кодить не работает пишет в firebag'е Index or size is negative or greater than the allowed amount" code: "1 alert(x[x.length-1].innerHTML);

мне нужно было найти в любом тэге последнюю запись ее содержимое, внутри "LI"...

Rootpassword
25.03.2012, 20:09
function tagName (name) {
return document.getElementsByTagName(name);
}
function search () {
var li = tagName("LI");
for(var i=0; i<li.length; i++) {
var x=li[i].getElementsByTagName('*');
if(x.length>0){ alert(x[x.length-1].innerHTML);}
};

};

jsProger
25.03.2012, 20:10
Спасибо народ, все получилось!!! оказывается нужно было просто указывать длину как сказал RootPassword:)