Итак, ваш javascript говорит "получить все <p>
внутри #saved_research". Вам нужно добавить специфицированный c идентификатор к вашему html. Есть много способов сделать это, но один из лучших способов сделать это с помощью атрибутов данных:
<div id="saved_research">
<p data-paragraph="1">Paris</p>
<p data-paragraph="2">London</p>
<p data-paragraph="3">New York</p>
</div>
$("#saved_research").click(function() {
console.log($("[data-paragraph='1']").text());
});
Используйте атрибуты данных, а не идентификаторы или классы, чтобы обозначать вещи в html, которые связаны с javascript. Некоторые считают это (включая меня) лучшей практикой. Это позволяет вам узнать, что в вашем html специально для javascript. Например, когда вы смотрите на ваш html в будущем, вы помните, что id #saved_research используется javascript? Если нет, кто-то, кто занимается дизайном страницы, может изменить #saved_research на #save_research, думая, что он связан только с CSS. Таким образом, они ломают javascript. С помощью атрибутов данных становится очень ясно: этот идентификатор используется для javascript.
Редактировать: на основе вашего комментария о том, что html не существует на странице при загрузке страницы, вот что вам нужно сделать:
$(window.document).on('click', "#saved_research", function() {
console.log($("[data-paragraph='1']").text());
});
Обратите внимание на другой формат, с .on('click'
? Этот формат необходим, если у вас есть элементы, которые динамически добавляются на страницу. Формат .click
работает, только если элемент существует на странице при первой загрузке страницы. Вы можете использовать этот формат .on('click'
с любыми другими ответами, перечисленными на этой странице, все они работают с этим форматом.