js. получить несколько значений с помощью id

#javascript #html #selector

#javascript #HTML #селектор

Вопрос:

 function handleUser(activeMenu, user) {
$('#accordion').html("");
  $.each(user, (index, user) => {
    $('#accordion').append(
<input class="control" id="a${user.userId}" value=${user.name}></input>
<input class="control" id="b${user.userId}" value=${user.email}></input>
<input class="control" id="c${user.userId}" value=${user.phone}></input> 
<input class="control" id="d${user.userId}" value=${user.address}></input>
<button class="info-actions" id="${user.userId}">
    save
</button>)});}
  

^ приведенный выше код отлично извлекает данные из базы данных.

Однако, чтобы сохранить…. Мне нужно получить каждое значение.

 function handleInfo() {
    $('#accordion').on('click','.info-actions',(event) => {
        let target = $(event.target).attr('id');
        console.log(target);
//this prints the id fine.

//let x = $('.control').attr('value');
//let x = $(`#a${target}`);
//let x = $(`#a${target}`);
//let x = $('#a${target}').val();
        console.log(x);

//..... then going to use ajax to connect controller.(Which I can handle)
})}
  

Я перепробовал много способов…
Не уверен, как получить значения для каждого идентификатора, используя цель.

Комментарии:

1. Не могли бы вы показать нам, что вы пробовали?

2. //пусть x = $(‘.control’).attr(‘значение’); //пусть x = $( #a${target} ); //пусть x = $( #a${target} ); //пусть x = $(‘#a${target}’).val();

3. вместо таргетинга по id вы можете запрашивать их по их тегу… что-то вроде $(this).children('input').forEach()

4. $(this) <— ссылается на? У нескольких пользователей есть свое имя, электронная почта, телефон и адрес. Я устанавливаю id в $ {user.userId}, чтобы у каждого пользователя был свой идентификатор ввода для своего имени и т.д…

Ответ №1:

Я думаю, что у него были некоторые проблемы с идентификаторами, имеющими пробелы / и т.д. Между ними или что-то в этомроде.

Я нашел обходной путь для решения проблемы.

Просто используется:

 var name = "a"   target;
var nameVal = document.getElementById(name).value;
  

и т.д.