перебор тегов
задача состоит в том что-бы получить список тегов на странице и сделать выборку по атрибуту.
var img = document.getElementsByTagName('img'); for(i=0;i<img.length;i++); imgList = img[i]; а вот дальш я чёт допереть не могу как выбрать тот тег по атрибуту допустим title="myimg" да и найдя его сделать переменной которая хранит его |
if (img[i].title=="myimg"){ // } |
а как создать переменную этого тега с данным значением атрибута
а вот так будет работать img[i].src == 'blabla'? |
Цитата:
var arrMyAttrib=[] if (img[i].title=="myimg"){ arrMyAttrib.push(img[i]); } |
var attr = []; attr[img[i].src] = 'blabla'; |
тоесть будет работать если так
<html> <head> <script> window.onload = function(){ var img = document.getElementsByTagName('img'); for(i=0;i<img.length;i++){ var arrMyAttrib=[] if (img[i].title=="fst"){ arrMyAttrib.push(img[i]); alert(arrMyAttrib[0].title) } } } </script> </head> <body> <img width='50' height='50' title='fst' /> <img width='50' height='50' title='snd' /> <img width='50' height='50' title='trd' /> <img width='50' height='50' title='fth' /> <img width='50' height='50' title='ffth' /> </body> </html> |
Цитата:
|
оно то работает, это я понял , но может же быть что что-то не правильно и при каких-то обстоятельствах работать не будет.
|
а вот переменная arrMyAttrib[0] будет доступна из любого места в скрипте или только в теле функции (onload) ?
|
что бы не задавать такие вопросы нужно читать книги в них все это описанно
|
Цитата:
return arrMyAttrib; Либо определить её изначально в глобальной области видимости; Либо определить в теле функции как глобальную arrMyAttrib = new window.Object() |
<html> <head> <script> window.onload = function(){ var img = document.getElementsByTagName('img'); for(i=0;i<img.length;i++){ var arrMyAttrib=[] if (img[i].title=="fst"){ arrMyAttrib.push(img[i]); <!-- alert(arrMyAttrib[0].title); --> } } alert(arrMyAttrib[0].title); <!--вынес сюда--> } </script> </head> <body> <img width='50' height='50' title='fst' /> <img width='50' height='50' title='snd' /> <img width='50' height='50' title='trd' /> <img width='50' height='50' title='fth' /> <img width='50' height='50' title='ffth' /> </body> </html> а вот почему так не работает (alert(arrMyAttrib[0].title) вынес из if ) |
Цитата:
<html> <head> <script> var arrMyAttrib=[]; window.onload = function(){ var img = document.getElementsByTagName('img'); for(i=0;i<img.length;i++){ if (img[i].title=="fst"){ arrMyAttrib.push(img[i]); <!-- alert(arrMyAttrib[0].title); --> } } alert(arrMyAttrib[0].title); <!--вынес сюда--> } </script> </head> <body> <img width='50' height='50' title='fst' /> <img width='50' height='50' title='snd' /> <img width='50' height='50' title='trd' /> <img width='50' height='50' title='fth' /> <img width='50' height='50' title='ffth' /> </body> </html> Цитата:
<html> <head> <script> window.onload = function(){ var img = document.getElementsByTagName('img'); arrMyAttrib = new window.Array() for(i=0;i<img.length;i++){ if (img[i].title=="fst"){ arrMyAttrib.push(img[i]); <!-- alert(arrMyAttrib[0].title); --> } } alert(arrMyAttrib[0].title); <!--вынес сюда--> } </script> </head> <body> <img width='50' height='50' title='fst' /> <img width='50' height='50' title='snd' /> <img width='50' height='50' title='trd' /> <img width='50' height='50' title='fth' /> <img width='50' height='50' title='ffth' /> <script type="text/javascript"> setTimeout(function() {alert("alert 2: "+arrMyAttrib[0].title)},2100) </script> </body> </html> |
сделал сам вынес var arrMyAttrib=[] за пределы функции ))) начало работать , но хотелось бы узнать что я сделал ))))
|
помогите разобратся почему не работает (((
<html> <head> <script type="text/javascript"> function appendLink(imgTitle){ var res = ['http://ya.ru','http://google.ru','http://ex.ua']; var img = document.getElementsByTagName('img'); var imgArr = []; for(i=0;i<img.length;i++){ if(img.title == imgTitle){ imgArr.push(img[i]); concretImg = imgArr[0]; } } var newLink = document.createElement('a'); if(imgTitle == 'fst'){ newLink.setAttribute('href',res[0]); }else if(imgTitle == 'snd'){ newLink.setAttribute('href',res[1]); }else if(imgTitle == 'trd'){ newLink.setAttribute('href',res[2]); } // alert('sdsd'); <-- до етих пор алерт работает var td = concretImg.parentNode; td.removeChild(concretImg); td.appendChild(newLink); newLink.appendChild(concretImg); // здесь алерт уже не работает ... } window.onload = function(){ appendLink('fst'); appendLink('snd'); appendLink('trd'); } </script> </head> <body> <table border="1"> <td><img width='50' height='50' title='fst' src = 'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' /></td> <td><img width='50' height='50' title='snd' src = 'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' /></td> <td><img width='50' height='50' title='trd' src = 'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' /></td> </table> </body> </html> срипт должен оборачивать картинку ссылкой по загрузке документа () |
<html> <head> <script type="text/javascript"> window.onload = function (e){ var res = ['http://ya.ru','http://google.ru','http://ex.ua']; var e = e || event; var target = e.target || e.srcElement; if(target.title == 'fst'){ window.location.assign(res[0]); }else if(target.title == 'snd'){ window.location.assign(res[1]); }else if(target.title == 'trd'){ window.location.assign(res[2]); } } </script> </head> <body> <table border="1"> <td><img width='50' height='50' title='fst' src = 'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' /></td> <td><img width='50' height='50' title='snd' src = 'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' /></td> <td><img width='50' height='50' title='trd' src = 'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif' /></td> </table> </body> </html> решил попробовать так , тоже не получается .... прошу помощи по обоим вариантам )) |
frant32,
if(img.title == imgTitle){ нет элемента - сравнивать можно элемент img[i].title== imgTitle){ Вот эту конструкцию Цитата:
|
Цитата:
а через switch - case чем лутше ? да и со вторым способом не поможете разобратся? |
Цитата:
|
Часовой пояс GMT +3, время: 16:19. |