Javascript href не включает многословные записи в массиве

Я пишу скрипт, который будет отображать в двух столбцах список предлагаемых слов на странице сайта. Предложенное слово будет отображаться в виде гиперссылки, которая ведет на другую страницу с дополнительной информацией об этом конкретном слове. Проблема, с которой я сталкиваюсь, заключается в том, что гиперссылка показывает только первое слово в предложенном слове в этом месте в массиве. Например, если предлагаемое слово в предложениях [m] должно было быть «собачий дом», гиперссылка содержит только «собаку» и, таким образом, ведет на другую страницу с дополнительной информацией. Отображаемое слово правильное, поэтому на странице отображается «собачья будка», а неверна только гиперссылка. Что я делаю не так с href? Есть ли что-то в шаблоне, что предотвращает многословные строки?

if (suggestions.length) {

    var table = '<table cellspacing = "1" cellpadding = "5">';
    var tolength = suggestions.length
    if (tolength ===1){
        for (var i = 0; i < suggestions.length; i++) {
             var b = suggestions[i]
             table += '<tr>';
             table += '<td><a href=word?word=>' + suggestions[i] + '</a></td>';
             table += '</tr>';
        }
     }
     if (tolength > 1){
        for (var m = 0; m < tolength; m+=2) {
             table += '<tr>';
             table += '<td><a href=word?word='+ suggestions[m] + '>' + suggestions[m] + '</a></td>';
             table += '<td><a href=word?word='+ suggestions[m+1] +'>'  + suggestions[m+1] + '</a></td>';
             table += '</tr>'
         }
      }

      table += '</table>';

      document.getElementById('sug').innerHTML = table;


}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

ваша проблема заключается в том, что пробелы в строке должны быть закодированы в %20 . Оберните свои предложения [m] в encodeURIComponent(), это приведет к строке типа «собака% 20house».

table += '<td><a href=word?word='+ encodeURIComponent(suggestions[m]) + '>' + suggestions[m] + '</a></td>';

https://www.w3schools.com/tags/ref_urlencode.ASP

Спасибо! Это решило проблему.

lb594022 09.08.2023 07:09

Вам не хватает двойных кавычек, попробуйте этот код ниже

table += '<td><a href = "word?word='+ suggestions[m] + '">' + suggestions[m] + '</a></td>';

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