Как настроить внешний div в javascript

У меня такая ситуация:

<div id="first">
  <div>
    <p>text</p>
  </div>
</div>
<div id="second">
   <div>
      <button class="button">click</button>
   </div>
</div>
...
<div id="first"> ... </div>
<div id="second"> ... </div>
...

и так далее, структура повторяется.

Эта структура создается динамически, поэтому я не могу использовать какой-либо конкретный класс или идентификатор для первого div.

Мне нужно получить текст в первом div, когда я нажимаю кнопку во втором div.

(ПРИМЕЧАНИЕ: мне нужно чисто решение javascript, а не решение jQuery)

Спасибо

1 ответ

Предполагая, что у вас есть обработчик события для нажатия кнопки, вы можете сделать это из этого обработчика события:

function buttonClickHandler(e) {
    var first = this.parentNode.parentNode.previousSibling;
    var paragraphs = first.getElementsByTagName("p");
    var text = paragraphs[0].textContent;
}

Если у вас есть общие и известные имена классов в div, помеченных первым и вторым, вы можете сделать свой код Javascript гораздо более изолированным от изменений разметки, что, как правило, хорошая идея.


PS Я полагаю, вы знаете, что в вашем HTML не должно быть дублированных значений идентификаторов. Этот код не использует их, но вы должны использовать имена классов вместо значений идентификаторов, если вы собираетесь иметь дубликаты.

Другие вопросы по тегам