#javascript #jquery #parent-child #children
#javascript #jquery #родитель-потомок #дочерние элементы
Вопрос:
У меня есть 4 вопроса, которые повторяются: HTML выглядит так.
<div class="question>
<div>
</div>
<div class="question" id="question">
<h1></h1>
// conent inside
</div>
</div>
</div>
Итак, все, что предшествует вопросу, зацикливается на любых вопросах, которые у меня есть.
Теперь я хочу выбрать первый вопрос, добавить класс и удалить класс.
Когда я говорю:
$(function() {
$('.question').children().eq(0).addClass('hide');
});
Он выбирает один ниже. когда я делаю:
$(function() {
$('.questions').children().eq(0).addClass('hide');
});
Затем он выбирает все разделы вопросов.
JS:
if(data.questions) {
quiz.set("questions", data.questions);
}
queueRender();
}
out.prototype.addQuestions = function(questions) {
var _this = this;
$.each(questions, function(i, v){
_this.addQuestion(v);
})
}
Комментарии:
1. Пожалуйста, добавьте неудачный сценарий. Как создать массив?
2. Нам нужно больше кода.
3. $(‘#question’).children().eq(0) — это способ получить доступ к первому элементу внутри этого div.
4. Я добавил больше, чтобы показать вам, как отображаются вопросы… @MXMXCII $(‘#question’).children().eq(0) — он выбирает первый h1 внутри div, который я хочу выбрать…
5. ТАКИМ образом, вставка повторяющегося идентификатора является недопустимым HTML в этом случае … не делайте этого.
Ответ №1:
Ваш пост менее чем на 100% понятен, поэтому просто угадайте его:
Учитывая эту разметку:
<div id="quiz">
<div class="question">
<h1>one</h1> content 1
</div>
<div class="question">
<h1>two</h1> content 2
</div>
<div class="question">
<h1>three</h1> content 3
</div>
</div>
Добавьте класс ‘hide’ ко всем вопросам, затем удалите из первого:
$(function() {
$('#quiz').find('.question').addClass('hide').eq(0).removeClass('hide');
});
Подробная версия:
$(function() {
$('#quiz').find('.question').addClass('hide');
$('#quiz').find('.question').eq(0).removeClass('hide');
});
альтернативный подробный
$(function() {
$('#quiz').find('.question').addClass('hide');
$('#quiz').find('.question').first().removeClass('hide');
});
Комментарии:
1. Спасибо. Хорошо, итак, я смешал некоторые вещи и получил свой правильный ответ, то есть: $(function() { var question = $(‘.questions’).find(‘.question’).eq(0); question.addClass(‘скрыть’); }); Как найду ли я следующий ответ на этот вопрос? добавить next() ?
2. Не соответствует вашему желанию, но
$('.questions').find('.question').eq(1);
является «следующим», если оно существует. или$('.questions').find('.question').each(...
перебирать их.3. Спасибо. Кстати, первое, что работало только в Mozilla. Есть идеи, почему он не работает в других браузерах? Извините за так много вопросов!
4. тупой с моей стороны, быстрый ввод не помещал идентификатор в разметку — исправлено