HTML: установить идентификатор для onclick из списка

#python #html #string #list #flask

#python #HTML #строка #Список #flask

Вопрос:

Извиняюсь, если этот вопрос уже был задан. Я новичок в HTML, и я не знаком со словами, которые я должен использовать, чтобы найти справку.

Я использую Flask и HTML для создания веб-сайта.

Мой код:

 <!DOCTYPE html>
<html>
<body>
<h3>Click the result you want to investigate</h3>
{% for r in results %}
  <p id=r["links"] onclick="myFunction(id)"> {{r["title"]}} ({{r["address_snippet"]}})  </p>
{% endfor %}

<script>
function myFunction(id) {
    document.getElementById(id).innerHTML = "CLICKED HERE";
}
</script>
</body>
</html>
  

Я пытаюсь распечатать список имен и т.д. на экран. Пользователь щелкнет по одному имени, затем это имя будет возвращено функции Python для дальнейшего анализа.

В качестве первой попытки я просто хочу изменить текст с имени на «НАЖАЛ ЗДЕСЬ». Однако, независимо от того, какое имя я нажимаю, изменяется только первая запись.

Я не могу понять, как установить идентификатор из контейнера. Любая помощь будет оценена!

Комментарии:

1. используйте this.id при передаче его в функцию или myFunction(r["links"])

2. Спасибо за предложение, но, похоже, это тоже не работает. * Если я изменю: onclick=»myFunction(id)» -> onclick=»myFunction (this.id )», я вижу то же самое поведение. * Если я изменю: onclick=»myFunction(id)» -> onclick=»myFunction(r [«ссылки»])», щелчок не сработает * Если я изменю: функция myFunction (id) -> функция myFunction (this.id ), по щелчку работает. Мысли?

3. Ну, во-первых, вам нужно изменить кавычки, потому что вы вложили «» внутри «»

4. Я понимаю. Возможно, вы могли бы сказать мне, как я должен его изменить?

5. onclick="myFunction(list['links'])" может сработать. Если нет, вам может потребоваться полностью экранировать строку. не уверен, как шаблоны flask работают с этой целью

Ответ №1:

Вам нужно обновить свой код следующим образом, чтобы вы получили фактическое значение из переменной r["links"] , добавив скобки {{r["links"]}}

 <p id="{{r["links"]}}" onclick="myFunction('{{r["links"]}}')"