@kofon
Я человек

Как получить индекс элемента id из дива формы?

Если есть форма, то запросто в Javascript можно получить ее значение инпута по индексу:

function showName(form){
alert(form.elements[0].value); //or .name
}

У меня такой код:
form
div id="_id" text /div
div id="_id" text /div
div id="_id" text /div
/form
заметьте, что id одинаковые
как получить текст по индексу id???
(Не стал расписывать onclick)

Жду что-то типа:
function showId(form){
alert(form.id[0].text); // где 0 - это индекс
// или
alert(form.id[0].value);
}
  • Вопрос задан
  • 2673 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Akellacom
CTO
id на то и id что это уникальное значение
используйте для этой цели class
Ответ написан
Комментировать
Скорее всего у Вас не получится при помощи js получить индекс id. И если код Ваш, то для валидности замените "одинаковые" id на одинаковые классы
<input class="some-class" name="some-name" value=""></input>
<input class="some-class" name="some-name" value=""></input>
<input class="some-class" name="some-name" value=""></input>
. Id по определению не может быть не уникальным. Он должен быть только один на странице. А дальше
var blocks = getElementsByClassName('some-class');
blocks[0].value ..


Хотя зачем по индексу, если можно каждый input поименовать(так или иначе это будете делать, раз отправляете данные на сервер), и брать по имени? но это уже Ваше дело..
Ответ написан
Комментировать
isqua
@isqua
Научу HTML, CSS, JS, BEM и Git
Как заметили выше, id может быть уникальным на странице и для этого лучше использовать классы.

При таком HTML:
<form>
    <div class="some-class">text1</div>
    <div class="some-class">text2</div>
    <div class="some-class">text3</div>
</form>


Получить содержимое элемента можно так:
function getElemContent(i) {
    return document.querySelectorAll('.some-class')[i].innerHTML;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы