gpt4 book ai didi

jquery - 使用 jQuery 更新带有下拉选择值的类

转载 作者:可可西里 更新时间:2023-11-01 12:57:20 26 4
gpt4 key购买 nike

我有一个包含一些可选类集的 div,我想使用下拉选择来切换这些类。据我所知,我编写了以下脚本,但它运行不正常。如果选择值为 null,它会抛出一个“未定义”值。如果你能解决这个问题,或者可以指导我使用 jQuery 实现我的目标,你将非常感谢

$(document).ready(function() {
var ContainerClasses;
var TxtColor;
var BackGroundColor;

// SWITCHING TEXT COLOR
$("#TxtColor").change(function() {
if ($(this).val()) {
TxtColor = ' ' + $(this).val();
} else {
TxtColor = "";
}
upDateTheme();
});

// SWITCHING BACKGROUND COLOR
$("#BackGroundColor").change(function() {
if ($(this).val()) {
BackGroundColor = ' ' + $(this).val();
} else {
BackGroundColor = "";
}
upDateTheme();
});

function upDateTheme() {
ContainerClasses = TxtColor + ' ' + BackGroundColor;
$('#Main').addClass(ContainerClasses);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="Main" class="">
<!-- SOME HTML INSIDE -->
</div>
<div class="optionBox">
<label>Text Color</label>
<select id="TxtColor">
<option value="">None</option>
<option value="ClassA">Class A</option>
<option value="ClassB">Class A</option>
</select>
</div>
<div class="optionBox">
<label>BackGround Color</label>
<select id="BackGroundColor">
<option value="">None</option>
<option value="Class1">Class 1</option>
<option value="Class2">Class 2</option>
</select>
</div>

最佳答案

很简单。您的值是 undefined。因此,最初像下面这样定义空值。

 var ContainerClasses="";
var TxtColor="";
var BackGroundColor="";

我添加了一些 css 样式并创建了 fiddle 。检查DEMO

逻辑部分是在更新主题之前你必须清除旧的类。否则它将添加到 div 中,如 div class="classA class1 classB class2....."。所以我删除了这些类,然后在下面的代码片段中更新了新类。

var ContainerClasses="";
var TxtColor="";
var BackGroundColor = "";

// SWITCHING TEXT COLOR
$( "#TxtColor" ).change(function() {
if ($(this).val()) {
TxtColor= ' ' + $(this).val();
} else { TxtColor = ""; }
upDateTheme();
});

// SWITCHING BACKGROUND COLOR
$( "#BackGroundColor" ).change(function() {
if ($(this).val()) {
BackGroundColor= ' ' + $(this).val();
} else { BackGroundColor = ""; }
upDateTheme();
});

function upDateTheme() {
$('#Main').removeClass();
ContainerClasses= TxtColor + ' ' + BackGroundColor;
$('#Main').addClass(ContainerClasses);
}
div.ClassA {
font-size:40px;
color:green;
}
div.ClassB {
font-size:10px;
color:red;
}
div.Class1 {
background:red;
}
div.Class2 {
background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="Main" class="">
Test
</div>
<div class="optionBox">
<label>Text Color</label>
<select id="TxtColor">
<option value="">None</option>
<option value="ClassA">Class A</option>
<option value="ClassB">Class B</option>
</select>
</div>
<div class="optionBox">
<label>BackGround Color</label>
<select id="BackGroundColor">
<option value="">None</option>
<option value="Class1">Class 1</option>
<option value="Class2">Class 2</option>
</select>
</div>

关于jquery - 使用 jQuery 更新带有下拉选择值的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com