replace()
全局在IE7中不起作用,但在IE8中有效。它是我打开和关闭的一堆产品。
如果删除.replace(),则可以在IE7中使用。
脚本
$('li.prod').toggle(true);
$('li.prod:visible').each(function(i){
i && ((i+1)%4 || $(this).addClass('prod-end'));
});
$('li.button').click(function (){
$('li.button').removeClass('active');
$(this).addClass('active');
$('li.prod').removeClass('prod-end');
if ( $('li#all').hasClass('active')) {
$('li.prod').toggle(true);
$('li.prod:visible').each(function(i){
i && ((i+1)%4 || $(this).addClass('prod-end'));
});
} else {
$('li.prod').toggle(false);
$('li.' + $(this).text().replace(/ /g, "-")).toggle(true);
$('li.' + ($(this).text().replace(/ /g, "-")) + ':visible').each(function(i){
i && ((i+1)%4 || $(this).addClass('prod-end'));
});
}
});
HTML
<div class="subNav">
<ul>
<li class="button active" id="all">all</li>
<li class="button" id="swimming">swimming</li>
<li class="button" id="lawn">lawn games</li>
</ul>
</div>
<ul>
<li class="prod swimming"></li>
<li class="prod swimming"></li>
<li class="prod lawn-games"></li>
<li class="prod lawn-games"></li>
<li class="prod lawn-games"></li>
</ul>
答案 0 :(得分:0)
$('li.' + $(this).text().replace(/\s/g, "-")).toggle(true);
如果这不起作用,则问题与.replace()
无关,而与您的this
元素无关。
希望这会有所帮助。干杯
答案 1 :(得分:0)
这是我在IE8中尝试的测试页面。它工作正常。 它也适用于FF5。
请你复制一下并测试一下吗?
您可以直接复制并粘贴整个内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
$(function () {
$('li.prod').toggle(true);
$('li.prod:visible').each(function (i) {
i && ((i + 1) % 4 || $(this).addClass('prod-end'));
});
$('li.button').click(function () {
$('li.button').removeClass('active');
$(this).addClass('active');
$('li.prod').removeClass('prod-end');
if ($('li#all').hasClass('active')) {
$('li.prod').toggle(true);
$('li.prod:visible').each(function (i) {
i && ((i + 1) % 4 || $(this).addClass('prod-end'));
});
}
else {
$('li.prod').toggle(false);
$('li.' + $(this).text().replace(/ /g, "-")).toggle(true);
$('li.' + ($(this).text().replace(/ /g, "-")) + ':visible').each(function (i) {
i && ((i + 1) % 4 || $(this).addClass('prod-end'));
});
}
});
});
</script>
</head>
<body>
<div class="subNav">
<ul>
<li class="button active" id="all">all</li>
<li class="button" id="swimming">swimming</li>
<li class="button" id="inflatables">inflatables</li>
</ul>
</div>
<ul>
<li class="prod swimming">swim1</li>
<li class="prod swimming">swim2</li>
<li class="prod inflatables">inf1</li>
<li class="prod inflatables">inf2</li>
<li class="prod inflatables">inf3</li>
</ul>
</body>
</html>
答案 2 :(得分:0)
感谢您的帮助。