Próbka mojego kodu:

<div id="ds">

    <classified_title check_zone="true" article="start" a_type="advertisement" cid="#P98_001"></classified_title>
    <p article_con="98.1" cid="#P98_005"></p>
    <p article="start" a_type="advertisement" cid="#P100_001"></p>
    <p article_con="98.1" cid="#P99_001"></p>
    <dc_title article="start" check_zone="true" a_type="article" cid="#P95_001"></dc_title>
    <pam_credit rot_ang="90_3021_1470_681_71" check_zone="true" article_con="95.1" cid="#P95_010">ILLUSTRATION BY HECTOR CADEMARTORI</pam_credit>
    <p article_con="95.1" link_para="95.1" cid="#P96_009"></p>
    <p article_con="95.1" link_para="96.1" cid="#P96_016"></p>
    <p article_con="95.1" link_para="96.1" cid="#P97_001"></p>
    <p article="end" cid="#P97_008"></p>

</div>

Chcę odróżnić zestawy trzech, takich jak następujący kod:

<p article_con="98.1" cid="#P98_005"></p>
<p article="start" a_type="advertisement" cid="#P100_001"></p>
<p article_con="98.1" cid="#P99_001"></p>

Pierwszy znacznik (<p article_con="98.1" cid="#P98_005"></p>) ma atrybut {x1}} i drugi tag (<p article="start" a_type="advertisement" cid="#P100_001"></p>) ma atrybut {x3}} i ponownie trzeci tag jest jak pierwszy znacznik, jak {{x4} } Atrybut ma tę samą wartość.

Nie tak:

<p article_con="98.1" cid="#P98_005"></p>
<p article="start" a_type="advertisement" cid="#P100_001"></p>
<p article_con="98.2" cid="#P99_001"></p>

Wartość atrybutu pierwszego i trzeciego tagu jest inna, ważna rzecz, to musi być atrybut article="start" w drugim znaczniku.

0
Supun 17 sierpień 2014, 18:46

2 odpowiedzi

Najlepsza odpowiedź

Zgadzam się z @Bluehound, że powinieneś sformatować swój HTML, ale na wypadek, gdybyś nie mógł tego zrobić, jest moja prosta sugestia JS:

var findArticle = function() {
    var start = document.querySelectorAll('[article="start"]')
    var l = start.length
    for (var i = 0; i < l; i++) {
        var node = start[i]
        var prev = node.previousElementSibling
        if (!prev || !prev.hasAttribute('article_con')) continue
        var con = prev.getAttribute('article_con')
        var next = node.nextElementSibling
        if (!next || !next.hasAttribute('article_con') ||
            next.getAttribute('article_con') != con) continue
        return node
    }
    return null
}

var article = findArticle()
console.log(article)

Przykładowy kod Oto

0
Алексей Овчинников 17 sierpień 2014, 15:11

Oto, co bym zrobił:

<div id="98.1">
    <p cid="#P98_005"></p>
    <p article="start" a_type="advertisement" cid="#P100_001"></p>
    <p cid="#P99_001"></p>
</div>

Jeśli owijasz każdy zestaw 3 w div i ustawić atrybut id do numeru Artykuł_con, możesz łatwo uzyskać dostęp do div, a zatem jego dzieci przez ten identyfikator przy użyciu:

<script>
    var childrenArray = document.getElementById('98.1').childNodes;
</script>

Stamtąd możesz uzyskać dostęp do akapitu pierwszego, drugiego lub trzeci z tej tablicy.

0
Ian 17 sierpień 2014, 15:02