嘿我正在寻找一个非常简单的jQuery代码,当选择某个单选按钮时显示div,如果根据单选按钮值“取消选择”该单选按钮,则隐藏该div。
我想出了如何使用单个过滤器的单选按钮,但我想为两个过滤器工作说
以下是适用于第一个过滤器(类型)的代码:
<script>
var $filters = $("input:radio[name='type']");
var $categoryContent = $('#mainhide .mainresultbox');
var $errorMessage = $('#errorMessage');
$filters.click(function() {
// if any of the radio buttons for brand are checked, you want to show div's containing their value, and you want to hide all the rest.
$categoryContent.hide();
var $selectedFilters = $filters.filter(':checked');
if ($selectedFilters.length > 0) {
$errorMessage.hide();
$selectedFilters.each(function (i, el) {
$categoryContent.filter(':contains(' + el.value + ')').show();
});
} else {
$errorMessage.show();
}
});
</script>
以下是单选按钮的HTML。
<ul>
<li><label for="cdg"><input type="radio" id="cdg" name="type" value="brand1"> brand1</label></li>
<li><label for="cdh"><input type="radio" id="cdh" name="type" value="brand2"> brand1</label></li>
<li><label for="cdi"><input type="radio" id="cdi" name="type" value="brand3"> brand1</label></li>
</ul>
<ul>
<li><label for="cdj"><input type="radio" id="cdj" name="quantity" value="10">10</label></li>
<li><label for="cdk"><input type="radio" id="cdk" name="quantity" value="20">20</label></li>
<li><label for="cdl"><input type="radio" id="cdl" name="quantity" value="30">30</label></li>
</ul>
以下是div及其内容
<div id="#mainhide">
<div>brand1 in stock - 10</div>
<div>brand1 in stock - 20</div>
<div>brand1 in stock - 30</div>
</div>
<div id="errorMessage">reset all fliters</div>
如何让两个滤镜都能正常工作,任何人都可以帮助我......
谢谢你, Naresh Kamireddy
答案 0 :(得分:1)
你不能在id中使用特殊字符,id应该遵循有效规则。
您使用了<div id="#mainhide">.
这是无效的ID名称
使用:<div id="mainhide">
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
更多信息:
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以像使用属性选择器一样重新过滤:
var $selectedFilters = $filters.filter(':checked').filter('[value="10"]';
我还会使用$(document).ready(function(){[your code here]});
而不是在页面仍在加载时疯狂加载JS。
我还建议不要按照其他人的建议在您的ID中使用#
。