Show/hide div 和 JQuery
Show/hide div with JQuery
我有这个代码:
$(document).ready(function() {
$('#viewAll').hide();
$('#viewProductIframe').hide();
$('#viewIngredientIframe').hide();
$('#viewPackagingIframe').hide();
$.viewMap = {
'viewEmpty' : $('#viewEmpty'),
'viewAll' : $('#viewAll'),
'viewProductIframe' : $('#viewProductIframe'),
'viewIngredientIframe' : $('#viewIngredientIframe'),
'viewPackagingIframe' : $('#viewPackagingIframe')
};
$('#viewSelector').change(function() {
// hide all
$.each($.viewMap, function() { this.hide(); });
// show current
$.viewMap[$(this).val()].show();
});
});
应该show/hide一组div。只有 viewProductIframe
div 实际出现。
起初我有 4 divs 没有 iframe 显示数据库中的表。我把这些div的内容放到了"viewAll"里面,加上了"viewProductIframe"和另外两个。
此更改显然破坏了代码,我找不到原因。
我的下拉菜单:
<select name="viewSelector" id="viewSelector">
<option name="viewEmpty" value="viewEmpty">Select an Option</option>
<option name="viewAll" value="viewAll">All</option>
<option name="viewProductIframe" value="viewProductIframe">Products</option>
<option name="viewIngredientIframe" value="viewIngredientIframe">Ingredients</option>
<option name="viewPackagingIframe" value="viewPackagingIframe">Packaging</option>
</select>
唯一出现的div:
<div id="viewProductIframe" name="viewProductIframe">
<h2>Product</h2>
<iframe src="products.php" class="displayFrame" />
</div>
另一个 iframe div,仍然不可见:
<div id="viewIngredientIframe" name="viewIngredientIframe">
<h2>Ingredients</h2>
<iframe src="ingredients.php" class="displayFrame" />
</div>
有人知道问题出在哪里吗?
试试下面的代码
1) 为我添加的所有 div 设置通用 class class 例如 common
<div id="viewProductIframe" name="viewProductIframe" class="common">
<h2>Product</h2>
<iframe src="products.php" class="displayFrame" />
</div>
<div id="viewIngredientIframe" name="viewIngredientIframe" class="common">
<h2>Ingredients</h2>
<iframe src="ingredients.php" class="displayFrame" />
</div>
jquery 是
$(document).ready(function() {
$(".common").hide();
$('#viewSelector').change(function() {
$(".common").hide(); // hide all divs
var id = $(this).find("option:selected").val(); // get current val
$("#" + id).show() // show current div id
});
});
我有这个代码:
$(document).ready(function() {
$('#viewAll').hide();
$('#viewProductIframe').hide();
$('#viewIngredientIframe').hide();
$('#viewPackagingIframe').hide();
$.viewMap = {
'viewEmpty' : $('#viewEmpty'),
'viewAll' : $('#viewAll'),
'viewProductIframe' : $('#viewProductIframe'),
'viewIngredientIframe' : $('#viewIngredientIframe'),
'viewPackagingIframe' : $('#viewPackagingIframe')
};
$('#viewSelector').change(function() {
// hide all
$.each($.viewMap, function() { this.hide(); });
// show current
$.viewMap[$(this).val()].show();
});
});
应该show/hide一组div。只有 viewProductIframe
div 实际出现。
起初我有 4 divs 没有 iframe 显示数据库中的表。我把这些div的内容放到了"viewAll"里面,加上了"viewProductIframe"和另外两个。
此更改显然破坏了代码,我找不到原因。
我的下拉菜单:
<select name="viewSelector" id="viewSelector">
<option name="viewEmpty" value="viewEmpty">Select an Option</option>
<option name="viewAll" value="viewAll">All</option>
<option name="viewProductIframe" value="viewProductIframe">Products</option>
<option name="viewIngredientIframe" value="viewIngredientIframe">Ingredients</option>
<option name="viewPackagingIframe" value="viewPackagingIframe">Packaging</option>
</select>
唯一出现的div:
<div id="viewProductIframe" name="viewProductIframe">
<h2>Product</h2>
<iframe src="products.php" class="displayFrame" />
</div>
另一个 iframe div,仍然不可见:
<div id="viewIngredientIframe" name="viewIngredientIframe">
<h2>Ingredients</h2>
<iframe src="ingredients.php" class="displayFrame" />
</div>
有人知道问题出在哪里吗?
试试下面的代码
1) 为我添加的所有 div 设置通用 class class 例如 common
<div id="viewProductIframe" name="viewProductIframe" class="common">
<h2>Product</h2>
<iframe src="products.php" class="displayFrame" />
</div>
<div id="viewIngredientIframe" name="viewIngredientIframe" class="common">
<h2>Ingredients</h2>
<iframe src="ingredients.php" class="displayFrame" />
</div>
jquery 是
$(document).ready(function() {
$(".common").hide();
$('#viewSelector').change(function() {
$(".common").hide(); // hide all divs
var id = $(this).find("option:selected").val(); // get current val
$("#" + id).show() // show current div id
});
});