Я новичок в программировании, пытаюсь научиться! Я передал параметр запроса в переменную JavaScript, используя следующее:
const queryString = window.location.search;
console.info(queryString);
const urlParams = new URLSearchParams(queryString);
var name = urlParams.get('id')
И теперь хотел бы передать его в JSON в приведенном ниже div
<div
class = "review-form"
data-site-uuid = "xxxxxx"
data-form-uuid = "xxxxxx"
data-prefill='{"firstName":name}'
></div>
Таким образом, мой параметр в конечном итоге будет отображаться в форме обзора.
Любая помощь высоко ценится!
Сначала я попытался передать переменную JavaScript в поле, прежде чем понял, что это JSON.
Я собираюсь предположить, что цель div
уже существует на странице к моменту запуска вашего кода JavaScript, и она однозначно идентифицируется с помощью id
или селектора CSS. Если так:
id
, с помощью document.querySelector, если нет).name
в качестве свойства firstName
, а затем используя JSON.stringify, чтобы получить JSON для этого объекта: JSON.stringify({firstName: name})
.data-prefix
через setAttributeНапример, если это единственный элемент с классом review-form
(или первый):
const element = document.querySelector(".review-form");
const json = JSON.stringify({firstName: name});
element.setAttribute("data-prefix", json);
Вы также можете использовать объект element.dataset вместо метода element.setAttribute
, но для новичка я бы пока остановился на простом setAttribute
.
Предупреждение: вы не показали, где находится ваш код JavaScript выше, но если он находится в глобальной области видимости, важно использовать
let name = ___
вместоvar name = ___
, потому что последний попытается установить свойствоname
окна. (Или используйте имя, отличное отname
. Или, что еще лучше, не помещайте свой код в глобальную область видимости, используйте модули .) Подробнее: stackoverflow.com/questions/10523701/…