从 select 选项中获取值 - 使用值来 toggleClass()
Get values from select options - use values to toggleClass()
我有一个 select 框,里面有很多选项。每个选项代表一个 class 名称,可以 select 编辑并添加到 div。 div 可能已经有其他 class 不被触及。
我的问题是我只想在这些 class 之间切换 - 而不是不断添加新的。我如何创建一个脚本来遍历 select 框的所有 class 名称并在它们之间切换?
这是我所拥有的 - 我只是添加了 classes - 它不会切换。
html:
<form id="form">
<div>
<label for="height">Height:</label>
<select id="height">
<option>- Select class -</option>
<option value="height133">133</option>
<option value="height55">55</option>
<option value="otherclass">127</option>
</select>
</div>
<button type="button" id="go">Submit</button>
</form>
<div class="gridbox otherclass1 otherclass2">
<div></div>
</div>
jQuery:
$("#go").click(function() {
var height = $("#height").find(":selected").val();
$(".gridbox").toggleClass(height);
});
非常感谢。
您需要删除之前添加的其他 类。
$("#go").click(function() {
var heightElem = $("#height");
var height = heightElem.find("option[value]:selected").val();
var allClassess = heightElem.find("option[value]") //traverse to all option elements
.map(function() {
return this.value ? this.value : null;
}).get() // Get an array of all the class
.join(' ') //Create a string;
$(".gridbox").removeClass(allClassess).addClass(height);
});
您可以将先前选择的 class 保留在一个变量中,然后在添加另一个 class 之前将其删除,toggleClass 只会 add/remove class.
var height = '';
$("#go").click(function() {
if(height !== '') {
$(".gridbox").removeClass(height);
}
height = $("#height").find(":selected").val();
$(".gridbox").addClass(height);
});
我有一个 select 框,里面有很多选项。每个选项代表一个 class 名称,可以 select 编辑并添加到 div。 div 可能已经有其他 class 不被触及。
我的问题是我只想在这些 class 之间切换 - 而不是不断添加新的。我如何创建一个脚本来遍历 select 框的所有 class 名称并在它们之间切换?
这是我所拥有的 - 我只是添加了 classes - 它不会切换。
html:
<form id="form">
<div>
<label for="height">Height:</label>
<select id="height">
<option>- Select class -</option>
<option value="height133">133</option>
<option value="height55">55</option>
<option value="otherclass">127</option>
</select>
</div>
<button type="button" id="go">Submit</button>
</form>
<div class="gridbox otherclass1 otherclass2">
<div></div>
</div>
jQuery:
$("#go").click(function() {
var height = $("#height").find(":selected").val();
$(".gridbox").toggleClass(height);
});
非常感谢。
您需要删除之前添加的其他 类。
$("#go").click(function() {
var heightElem = $("#height");
var height = heightElem.find("option[value]:selected").val();
var allClassess = heightElem.find("option[value]") //traverse to all option elements
.map(function() {
return this.value ? this.value : null;
}).get() // Get an array of all the class
.join(' ') //Create a string;
$(".gridbox").removeClass(allClassess).addClass(height);
});
您可以将先前选择的 class 保留在一个变量中,然后在添加另一个 class 之前将其删除,toggleClass 只会 add/remove class.
var height = '';
$("#go").click(function() {
if(height !== '') {
$(".gridbox").removeClass(height);
}
height = $("#height").find(":selected").val();
$(".gridbox").addClass(height);
});