#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"]}}')"