我可以帮忙吗?我更多的是在Jquery的初级阶段,这让我疯狂。
我希望打开& close div class =" div1"当我检查&取消选中输入类="标记"复选框。问题是div class =" div1"并输入class =" mark"是动态的,取决于我从数据库中获得什么。
下面的jquery是我尝试过的,但它无效。我以为.next应该有效。无论我生成多少输入类=标记,我都可以显示,隐藏div class =" div1"接下来呢?
$(document).ready(function(){
$(".div1").hide();
$(".mark").click(function() {
$(this).next('.div1').toggle();
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="panel panel-default">
<div class="panel-heading"><?php echo "$code - $name"; ?></div>
<div class="panel-body">
<label>MARKETING?</label>
<input class="mark" name="mark[]" type="checkbox" <?php if ($mark[$count] == 'Y') { ?> checked="checked" <?php } ?>/>
<div class="div1">
<label>Product + Price</label>
<input name="mark1[]" type="checkbox" <?php if ($mark1[$count] == 'Y') { ?> checked="checked" <?php } ?>/>
<textarea class="form-control" name="markbox1[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox1[$count]); ?></textarea>
<label>Plus 10</label>
<input name="mark2[]" type="checkbox" <?php if ($mark2[$count] == 'Y') { ?> checked="checked" <?php } ?>/>
<textarea class="form-control" name="markbox2[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox2[$count]); ?></textarea>
<label>Data</label>
<input name="mark3[]" type="checkbox" <?php if ($mark3[$count] == 'Y') { ?> checked="checked" <?php } ?>/>
<textarea class="form-control" name="markbox3[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox3[$count]); ?></textarea>
<label>Social Media</label>
<input name="mark4[]" type="checkbox" <?php if ($mark4[$count] == 'Y') { ?> checked="checked" <?php } ?> />
<textarea class="form-control" name="markbox4[]" cols="50" rows="5"><?php echo htmlspecialchars($markbox4[$count]); ?></textarea>
</div>
</div>
</div>
&#13;
答案 0 :(得分:1)
这应该可以解决问题吗?在这种情况下,我通常使用show()而不是toggle()。如果取消选中该复选框,还会添加if语句。干杯
$(document).ready(function() {
$(".div1").hide();
$(".mark").click(function() {
if (".mark").is(":checked")) {
$(this).next(".div1").show();
} else {
$(this).next(".div1").hide();
};
});
});