Как получить второй дочерний элемент, или второй смежный
Здравствуйте, запарсил 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, время: 23:25. |