Как получить второй дочерний элемент, или второй смежный
Здравствуйте, запарсил XML, и некоторые таги и аттрибуты отобразил прям как есть. Вот кусок кода.
<item thumb="il-button15.jpg"> <img link="il-image15.jpg"><txt><![CDATA[<font color='#3E3A3A'>In the Beginning Man Created God</font>, Keter Books]]></txt></img> </item> <item thumb="il-button16.jpg"> <img link="il-image16.jpg"><txt>Tolerance, Galeria Barbour</txt></img> </item> <item thumb="il-button17.jpg"> <img src="../images/illustration/il-image17e.jpg" class="pics" height="50"> <txt style="display:none"><font color='#3E3A3A'>A Girl from There</font> by Hava Nissimov, Mikteret Books</txt> <buyit style="display:none" data-typ="book" data-short_text="A Girl from There" data-prc="18" id="111115">Limited edition, 112 pages, Hebrew language<br/>Separate English translation attached<br/>Fragments of memories of a child<br/>Israel Meuseum Award - silver medal</buyit> </img> <img src="../images/illustration/il-image17f.jpg" class="pics" height="50"> <txt style="display:none"><font color='#3E3A3A'>A Girl from There</font> by Hava Nissimov, Mikteret Books</txt> <buyit style="display:none" data-typ="book" data-short_text="A Girl from There" data-prc="18" id="111116">Limited edition, 112 pages, portugal language<br/>Separate English translation attached<br/>Fragments of memories of a child<br/>Israel Meuseum Award - silver medal</buyit> </img> </item> В некоторых у некоторых img, нет дочернего элемента buyit. У меня есть скрипт, который выполняется при клике на img
window.onload=(function(){
var pics=(d=document).getElementsByTagName('img');
for(i=0;i<=(pics.length-1);i++){
pics[i].onclick=(function(){
alert(/////)
});
}
});
Что мне прописать в alert, чтобы он мне выдал значения аттрибута data-short_text у тега <buyit> если таковой (тег) имеется, а если нет, то вывел бы "!!!". Пытался писать this.ChildNodes[1], убирал </img>, вместо него <img src="" /> и тогда делать this.nextSibling.nextSibling ничего не получилось. Как быть? Заранее спасибо! |
this.getElementsByTagName('buyit');
Не гарантирую работоспособность, т.к. IMG — одиночный тег, м.б. он вообще не может иметь дочерних узлов. |
Все. разобрался, просто всю эту тему заключил в span, а img сделал как надо- <img /> внутри него.
следовательно там же и buyit. А потом вот такой вот код
var gg=this.parentNode.getElementsByTagName('buyit');
alert(gg[0].getAttribute('data-prc'));
|
Я бы сделал так:
a=document.getElementsByTagName('buyit')
for(var i=0; i<a.length; i++) {
a[i].parentNode.onclick = function(x) {
return function() { alert(a[x].getAttribute('data-short_text')) }
}(i)
}
Жаль только я опоздал с ответом:) |
Зачетно, спасибо! Запишу это к себе на будующее. В данном случае спэн предпочтительней так как это разрешило мне еще одну неразрешимую задачу )))
|
| Часовой пояс GMT +3, время: 22:41. |