Как Добавление Признака идентификации, посредством Jquery

То, что я хочу реализовать, состоит в том, чтобы производить идентификацию динамического способа через jquery, уже производит это мне внутри for единственная проблема, которая у меня есть с этим, состоит в том, что он всегда оставляет мне последнюю идентификацию, которая читает, и я хочу, чтобы каждая идентификация была различной.

Код, где он производит идентификацию:

<script>
$(document).ready(function(){
    var PHP_VARS = <?php echo $planta; ?>;
    for (var i=0; i<PHP_VARS; i++) {
        $(".accordion").append("<li class=tabs><div class=paragraph><h1>Accordion</h1><p>Esto es una Pruba.</p></div></li>")
        $('.tabs').attr('id', 'tabs'+i);
}

$(".accordion").click(function() {
   $(".tabs").css("width","300px"); 
});

});
</script>

Код HTML:

<body id="cuerpo"> 
  <div class="container">
    <ul class="accordion">        
    </ul>
  </div>
</body>
2
задан 23.01.2017, 19:14
0 ответов

Проблема, которую представляет вопрос, сейчас здесь:

for (var i=0; i<PHP_VARS; i++) {
    $(".accordion").append("<li class=tabs><div class=paragraph><h1>Accordion</h1><p>Esto es una Pruba.</p></div></li>")
    $('.tabs').attr('id', 'tabs'+i);
}

И в частности в части $('.tabs').attr('id', 'tabs'+i);, как дела, используя достаточно характерный селектор и едва каждый tab добавит, изменится идентификация всех tabs в каждую перемещенную цикла. Поэтому они покончат всегда с идентификацией последнего.

Чтобы это решать, он добавляет идентификацию динамического способа:

for (var i=0; i<PHP_VARS; i++) {
    $(".accordion").append("<li class='tabs' id='tabs" + i + "'><div class='paragraph'><h1>Accordion</h1><p>Esto es una Pruba.</p></div></li>")
}

(Также я добавил кавычки, чтобы идентифицировать лучше, где он начинает и заканчивает каждое поле)


Проблема здесь:

$(".accordion").click(function() {
   $(".tabs").css("width","300px"); 
});

То, что делает это, что, когда нажмут на аккордеон ($(".accordion").click(...)) он идет выбирать все tabs и изменится ширина в 300px ($(".tabs").css("width","300px")).

Звучи правильно, но он это не. Почему? Потому что ты не хочешь выбрать все tabs и изменить им ширину, ты хочешь только tabs, которые внутри нажатого аккордеона. Ты можешь получать это таким образом:

$(".accordion").click(function() {
   $(this).find(".tabs").css("width","300px"); 
});

Так будут выбраны только tabs, которые будут внутри нажатого аккордеона.

2
ответ дан 03.12.2019, 17:32
  • 1
    измените вопрос и также используйте твой метод, но он продолжает меня помечая отверстие всех спорщик tabs. –  23.01.2017, 19:11
  • 2
    Añ ade có я говорю произведенный HTML для того, чтобы мы смогли видеть có mo не удайся. –  23.01.2017, 19:12
  • 3
    Я заношу в список, эх añ adido моя структура HTML –  23.01.2017, 19:14
  • 4
    @David я издал вопрос для того, чтобы каждый .tabs имел, пойдите различно –  23.01.2017, 19:15

Теги

Похожие вопросы