Как добавить значение из обратного вызова в новый элемент с помощью setAttribute? - PullRequest
0 голосов
/ 05 мая 2019

Мне нужно добавить значение обратного вызова в мой setAttribute. Как я могу это сделать?

Это значение необходимо для получения данных из таблицы в более поздний момент.

Это код:

row.forEach(function(row) {
         var subchapname = document.createElement("div");
         subchapname.setAttribute("id", "subchaptertitle");
         subchapname.setAttribute("subid", '"+row+"');
         subchapname.setAttribute("onclick","{ alert('You are not going to believe this!') } ");
         subchapname.textContent = row.subname;
         rows.appendChild(subchapname);

В основном это означает: обратный вызов = строка

Этот обратный вызов должен быть добавлен к subchapname.setAttribute("subid", '"+row+"');

Возможно ли это?

Это фактический результат:

<div id="subchaptertitle" subid="&quot;+row+&quot;" onclick="{ alert('You are not going to believe this!') } ">bos in brand</div>```

1 Ответ

0 голосов
/ 05 мая 2019

subid не является атрибутом для хранения данных в нем, поэтому вы не можете добавить такой атрибут в html-тег и заполнить его значением (Конечно, запись строки в него будет работать, но это то, что вы необходимость?). Но вы можете добавить наборы данных, если вы используете html5. Поэтому используйте это решение для хранения вашего значения строк в свойстве набора данных subid. Если строка является объектом и вы хотите увидеть строковое значение объекта, используйте JSON.stringify перед сохранением его в наборе данных

row.forEach(function(row) {
  var subchapname = document.createElement("div");
  subchapname.setAttribute("id", "subchaptertitle");
  subchapname.dataset.subid = row;
  // subchapname.dataset.subid = JSON.stringify(row);
  subchapname.setAttribute("onclick","{ alert('You are not going to believe this!') } ");
  subchapname.textContent = row.subname;
  rows.appendChild(subchapname);
});

Ваш элемент теперь должен выглядеть так:

<div id="subchaptertitle" onclick="{ alert('You are not going to believe this!') } " data-subid="[object Object]"></div>

Или, если вы использовали JSON.stringify:

<div id="subchaptertitle" onclick="{ alert('You are not going to believe this!') } " data-subid="what ever row is as a string"></div>

Чтобы записать значение в консоль, (после добавления тега в DOM) сделайте что-то вроде этого:

console.log(document.getElementById('subchaptertitle').dataset.subid);

Если вы использовали JSON.stringify, теперь используйте что-то вроде этого:

console.log(JSON.parse(document.getElementById('subchaptertitle').dataset.subid));
...