#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
почему,
Я хочу получить значение в html-теге, но он возвращает только первое значение, и я не знаю почему… (Я хочу значение html-тега с классом «iHidden»)
(Мне отлично удается получить значения первого ввода с именем =»service []» в моем javascript)
while($service = $req->fetch()){ ?>
<div class="form-control">
<input type="checkbox" name="service[]" value="<?= $service['price']; ?>" id="<?= $i ?>">
<p>id_service : <i class="iHidden"><?= $service['id_service']; ?></i></p>
<label for="<?= $service['service'] ?>"><?= $service['service']; ?></label>
<strong><?= $service['price']; ?>€</strong>
</div>
<?php } ?>
вот мой javascript :
for(var i = 0; i <= totalService; i ){
if($('#' i).is(":checked")){
// For the first input (it works)
var total = $('#' i).val();
globalTotal = parseInt(globalTotal ) parseInt(total);
// End for the first input
// Here is the problem : it returns only the first value in my database...
getI[i] = $('.iHidden').html();
console.log(getI); // shows the first value
}
}
Когда он нажимает на «Калькулятор призовых сервисов», я хочу, чтобы он показывал мне идентификатор сервиса, который я проверил. и если я проверил 2, я хочу, чтобы он показывал мне 2.
Заранее спасибо за помощь!
Комментарии:
1. Вот как работает
html()
функция2. Вот изображение, чтобы лучше представить: ibb.co/GTBwNKm
3. «Получите HTML-содержимое первого элемента в наборе сопоставленных элементов или задайте HTML-содержимое каждого сопоставленного элемента.
Ответ №1:
html()
Метод возвращает HTML-содержимое первого элемента в коллекции. В вашем случае .iHidden
выбираются все элементы с помощью class iHidden
.
Получите HTML-содержимое первого элемента в наборе сопоставленных элементов или задайте HTML-содержимое каждого сопоставленного элемента.
Для решения проблемы выберите на основе родительского элемента всего элемента.Где closest()
метод может быть использован для получения общего предка и получения iHidden
элемента с помощью find()
метода.
getI[i] = $('#' i).closest('.form-control').find('.iHidden').html();
К вашему сведению: Из MDN docs:
Примечание: Использование символов, кроме букв ASCII, цифр, ‘_’, ‘-‘ и ‘.’ может вызвать проблемы с совместимостью, поскольку они не были разрешены в HTML 4. Хотя это ограничение было снято в HTML 5, идентификатор должен начинаться с буквы для совместимости.
Поэтому лучше начинать значение id с буквы, а не с цифры.
Например :
PHP
<input type="checkbox" name="service[]" value="<?= $service['price']; ?>" id="total<?= $i ?>">
JS
for (var i = 0; i <= totalService; i ) {
var $tot = $('#total' i);
if ($tot.is(":checked")) {
var total = $tot.val();
globalTotal = parseInt(globalTotal) parseInt(total);
getI[i] = $tot.closest('.form-control').find('.iHidden').html();
console.log(getI);
}
}
Комментарии:
1. @pandaD : рад это слышать 🙂