У меня есть ряд содержимого html, называемых фильтрами, которые генерируются из базы данных. Содержимое может изменяться динамически в соответствии со страницей. Я дал идентификаторы css для каждого основного div и добавил число с ними во время цикла. Ниже приведен пример фрагмент кода:Странное поведение jQuery при отображении скрытого содержимого
<div><a id="filter-1">Brands</a></div>
<div id="filter-op-1">This is option 1</div>
<div><a id="filter-2">Size</a></div>
<div id="filter-op-2">This is option 2</div>
<div><a id="filter-3">Color</a></div>
<div id="filter-op-3">This is option 3</div>
идентификаторы filter-1
и filter-op-1
и т.д. порождаются числом петель, поэтому мы не знаем, как будет генерироваться много содержания на странице для фильтров.
Мне нужно, чтобы показать/скрыть фильтр-оп-й содержимое от a
мыши, поэтому я написал следующий JQuery код:
$(document).ready(function() {
$('div a').click(function() {
var self = $(this);
var cssId = self.attr('id');
var child = $('div#filter-op-'+cssId);
child.toggle();
});
});
Теперь проблема заключается в том, что она не работает таким образом, но если я удалю cssId
в js-коде и -1
, -2
и т. д. в html, он начнет работать, но он скрывает все содержимое независимо от того, какой a
я нажал.
Я не понимаю, что вызывает эту проблему. Кто-нибудь может объяснить эту проблему и дать хороший совет, как справиться с этим?
Благодаря
Посмотрите, как работает здесь. https://jsfiddle.net/sandenay/uk1Lquuh/1/ –
'self.attr ('id')' будет '" filter- "' и не только '' '' part;) –
Andreas
'console. log (cssId); 'поможет вам понять, отлично подходит и для будущих ошибок, чтобы проверить переменные – turbopipp