Как установить идентификатор с помощью javascript? [закрыто]

21

Я создаю страницу с большим количеством продуктов, и для этого мне нужно много ID, и я сделал это с использованием серверной части (Python), поэтому я отправляю для каждого продукта свой собственный <div id='hello1'> test </div>

Теперь, когда пользователь установит значение dinamycaly и увидит результат в браузере, я хочу сгенерировать еще один ID , к этому я нашел btoa("hello1") , поэтому я создаю еще один ID

Итак, вопрос, как я могу поставить btoa("hello1") в <div> ?

Изменить: то, что я хочу сгенерировать, - это еще один <div> и не обновлять первый.

<input id="{{str(product["avt"]["fto"])}}" > this will become  <input id="12232" > because it is special to Tornado Template
<span>New price :</span>
<span id=btoa({{str(produit["avt"]["fto"])}})> This  is where i use innerHTML </span>

, как вы можете видеть, пользователи будут добавлять значение и видеть его динамически.

Это будет работать с Python, используя:

<span id="{{base64.b64encode(str(produit["avt"]["fto"]))}}"></span>

но я, если это можно сделать с помощью Javascript, сервер будет бесплатным для половины операций!

    
задан Abdelouahab Pp 02.04.2013 в 04:00
источник
  • Покажите нам, как вы создаете div. –  bfavaretto 02.04.2013 в 04:06
  • ok, я обновлю его –  Abdelouahab Pp 02.04.2013 в 04:07
  • Разве эти шаблоны не обрабатываются на стороне сервера с помощью python? Вы создаете какие-либо элементы с помощью JavaScript? –  bfavaretto 02.04.2013 в 04:19
  • @bfavaretto только входные элементы, элемент span должен быть сгенерирован с использованием javascript, поэтому я могу использовать getElementById в режиме реального времени –  Abdelouahab Pp 02.04.2013 в 04:22
  • Вопрос был всем, на что мне нужен был ответ. –  Phil 24.03.2017 в 02:17

1 ответ

46

Вы имеете в виду это?

var hello1 = document.getElementById('hello1');
hello1.id = btoa(hello1.id);

Для дальнейшего примера, скажем, вы хотели получить все элементы с классом «abc». Мы можем использовать querySelectorAll() , чтобы выполнить это:

HTML

<div class="abc"></div>
<div class="abc"></div>

JS

var abcElements = document.querySelectorAll('.abc');

// Set their ids
for (var i = 0; i < abcElements.length; i++)
    abcElements[i].id = 'abc-' + i;

Это присваивает каждому элементу идентификатор 'abc-<index number>' . Так получилось бы так:

<div class="abc" id="abc-0"></div>
<div class="abc" id="abc-1"></div>

Чтобы создать элемент и присвоить id , мы можем использовать document.createElement() , а затем appendChild() .

var div = document.createElement('div');
div.id = 'hello1';

var body = document.querySelector('body');
body.appendChild(div);

Обновление

Вы можете установить id на свой элемент следующим образом, если ваш скрипт находится в вашем файле HTML.

<input id="{{str(product["avt"]["fto"])}}" >
<span>New price :</span>
<span class="assign-me">

<script type="text/javascript">
    var s = document.getElementsByClassName('assign-me')[0];
    s.id = btoa({{str(produit["avt"]["fto"])}});
</script>

Ваши требования по-прежнему на 100% не понятны.

    
ответ дан Daniel Imms 02.04.2013 в 04:01
источник
  • Что вы имеете в виду? Вот как вы устанавливаете идентификатор. Получите элемент, а затем используйте element.id –  Daniel Imms 02.04.2013 в 04:03
  • @AbdelouahabPp еще один ??? какой еще вы ожидаете? это самый простой и стандартный –  exexzian 02.04.2013 в 04:03
  • @DanielImms Я думаю, что он означает создание нового div и присвоение идентификатора. –  MikeSmithDev 02.04.2013 в 04:07
  • Я думаю, вы недооцениваете, насколько мощными являются компьютеры в эти дни. Простое вычисление идентификатора должно выполняться сервером, если это возможно. –  Daniel Imms 02.04.2013 в 04:30
  • @AbdelouahabPp Я пропустил [0] в конце, который выберет первый. Вы можете вернуться без [0], чтобы получить массив, а затем перебрать его. –  Daniel Imms 02.04.2013 в 04:45
Показать остальные комментарии