#javascript #html #for-loop #hyperlink
#javascript #HTML #для цикла #гиперссылка
Вопрос:
Я пытаюсь создать функцию, которая изменяет ссылку href в зависимости от того, какие элементы видны.
Итак, в этом примере я хочу, чтобы моя ссылка былаwww.link.com/sample1/sample2.
Поскольку div sample3 скрыт, он не должен быть включен в URL в этом примере.
<div class="filters"> sample1</div>
<div class="filters"> sample2</div>
<div class="filters" style="display:none"> sample3 </div>
<script>
function rt100_link_function() {
var link = document.getElementById("RT100link");
var all = document.getElementsByClassName("filters");
for (var i = 0, max = all.length; i < max; i ) {
if (isHidden(all[i]))
link.href = link.href;
else
var one = all[i]
link.href = link.href one.innerhtml;
}
}
function isHidden(el) {
var style = window.getComputedStyle(el);
return ((style.display === 'none'))
}
</script>
Проблема, с которой я столкнулся, заключается в том, что URL выводится какwww.link.com/undefined — Я просто хочу взять содержимое видимых разделов и включить его в URL-адрес, разделенный косой чертой — но .innerhtml не работает?
Любая помощь приветствуется!
Ответ №1:
Используйте one.innerHTML
вместо one.innerhtml
как;
link.href = link.href one.innerHTML;
.innerhtml
не является свойством элемента DOM, поэтому оно всегда будет возвращаться undefined
.
Комментарии:
1. Спасибо за объяснение! Очень помогает. Это не сработало с переменной «one», поэтому удалил ее и заменил one.innerHTML на all[i].innerHTML. Работает почти идеально. Единственная другая проблема заключалась в том, что URL включал случайную строку символов перед моей предполагаемой строкой. Исправлено с помощью .replace однако.