所以我继承了一些代码,对我来说,如何在需要它的地方插入两个类是不明显的。
所以我有三个相关的代码块,一些phtml,一些jquery和输出html
PHTML
<ol>
<?php foreach ($this->getItems() as $_item): ?>
<li
/*<!-- class="jcorgFilterTextParent" -->*/
>
<?php if ($_item->getCount() > 0): ?>
<a href="<?php echo $this->urlEscape($_item->getUrl()) ?>"
/*<!--class="jcorgFilterTextChild"-->*/
>
<?php echo $_item->getLabel() ?>
<?php if ($this->shouldDisplayProductCount()): ?>
<span class="count">(<?php echo $_item->getCount() ?>)</span>
<?php endif; ?>
</a>
<?php else: ?>
<span>
<?php echo $_item->getLabel(); ?>
<?php if ($this->shouldDisplayProductCount()): ?>
<span class="count">(<?php echo $_item->getCount() ?>)</span>
<?php endif; ?>
</span>
<?php endif; ?>
</li>
<?php endforeach ?>
</ol>
如果我直接在这里插入类,我可以让第一次迭代顺利运行,但没有其他人。 jquery是我真的很困惑的地方。
jQuery('.block-layered-nav .block-content #narrow-by-list dt').on('click', function (){
if(jQuery(this).next('dd').css('display') != 'block'){
jQuery('.active').slideUp('fast').removeClass('active');
jQuery(this).next('dd').addClass('active').slideDown('slow');
} else {
jQuery('.active').slideUp('fast').removeClass('active');
}
});
});
我希望能够插入类&#39; jcorgFilterParent&#39;和&#39; jcorgFilterText&#39;在jquery中,我不知道如何导航DOM以使它们在正确的位置。
最后只是针对某些情况
<div class="block block-layered-nav block-layered-nav--no-filters">
<div class="block-title">
<strong><span>Filter By</span></strong>
</div>
<div class="block-content toggle-content">
<p class="block-subtitle block-subtitle--filter">Filter</p>
<dl id="narrow-by-list">
<dt class="odd">Manufacturer</dt><dd class="odd">
<input type="text" id="filter">
<ol>
<li>
<a href="http://marssup1.nextmp.net/main.html?manufacturer=2664">3M<span class="count">(449)</span></a>
</li>
<li>
<a href="http://marssup1.nextmp.net/main.html?manufacturer=2665">Abanki Corp.<span class="count">(29)</span></a>
</li>
我真的是Jquery的新手所以任何建议真的很值得赞赏
答案 0 :(得分:0)
我认为你只需要这样做:
查找#narrow-by-list中的所有内容,并将类添加到其中。
jQuery('#narrow-by-list li').addClass('jcorgFilterTextParent');
同样的想法,但是&lt; a&gt;标签
jQuery('#narrow-by-list li a').addClass('jcorgFilterText');
由于您在Magento工作,您可能希望使用原型代替:
$$('#narrow-by-list li').invoke('addClassName', 'jcorgFilterTextParent');
$$('#narrow-by-list li a').invoke('addClassName', 'jcorgFilterText');
答案 1 :(得分:0)
嘿,谢谢你帮我一起去了埃里克。这是解决方案:
模板\目录\导航\列表category.phtml
//Script for filter navigation
jQuery('.block-layered-nav .block-content #narrow-by-list dt').on('click', function (){
if(jQuery(this).next('dd').css('display') != 'block'){
jQuery('.active input').removeAttr('id');
jQuery('.active li').removeClass('jcorgFilterTextParent');
jQuery('.active a').removeClass('jcorgFilterTextChild');
jQuery('.active').slideUp('fast').removeClass('active');
jQuery(this).next('dd').addClass('active').slideDown('slow');
jQuery('.active input').attr('id' ,'filter');
jQuery('.active li').addClass('jcorgFilterTextParent');
jQuery('.active a').addClass('jcorgFilterTextChild');
jQuery("#filter").jcOnPageFilter({animateHideNShow: false,
focusOnLoad:true,
highlightColor:'yellow',
textColorForHighlights:'#000000',
caseSensitive:false,
hideNegatives:true,
parentLookupClass:'jcorgFilterTextParent',
childBlockClass:'jcorgFilterTextChild'});
} else {
jQuery('.active input').removeAttr('id');
jQuery('.active li').removeClass('jcorgFilterTextParent');
jQuery('.active a').removeClass('jcorgFilterTextChild');
jQuery('.active').slideUp('fast').removeClass('active');
}
});
});