使用javascript更改DIV按钮的值

使用javascript更改DIV按钮的值,javascript,jquery,html,Javascript,Jquery,Html,这是一个noob问题: 我在HTML中定义一个按钮,如下所示: <div> <input class="btn-change" type="button" value="Select good points" /> </div> 及 所以我用的是javascript $(".btn-change").on("click", function() { alert("you pressed the " + nextMark + " bu

这是一个noob问题:

我在HTML中定义一个按钮,如下所示:

<div>    
    <input class="btn-change" type="button" value="Select good points" />
</div>

所以我用的是javascript

$(".btn-change").on("click", function() {

    alert("you pressed the " + nextMark + " button");

    switch(nextMark) {
        case "bad":
            nextMark = "good"
            document.getelementsbyclassname("btn-change").value="Select good points";
            break;
        case 'good':
            nextMark = "bad"
            $("btn-change").value = "Select bad points";
            break;
    }
}
nextMark var根据按钮的值更改放置在传单地图上的标记的颜色

警报显示案例结构正在工作,但按钮值没有改变-正确的做法是什么


要使用JQuery为输入赋值,需要使用
.val()
而不是
.value

var nextMark=“好”;
$(“.btn更改”)。在(“单击”,函数(){
开关(下一个标记){
案例“坏”:
nextMark=“好”;
$(“.btn change”).val(“选择好的分数”);
打破
案例“好”:
nextMark=“坏”;
$(“.btn change”).val(“选择坏点”);
打破
}
})

您需要指定
文档的索引。getElementsByClassName(“btn更改”)[0]。值=
0
var nextMark=“好”;
$(函数(){
$(“.btn更改”)。在(“单击”,函数(){
警报(“您按下了“+nextMark+”按钮”);
开关(下一个标记){
案例“坏”:
nextMark=“好”
document.getElementsByClassName(“btn更改”)[0].value=“选择好的点”;
打破
案例“好”:
nextMark=“坏”
document.getElementsByClassName(“btn更改”)[0].value=“选择坏点”;
打破
}
});
})

首先,您缺少一个结尾(参见
关闭“单击”…上的

如果您使用的是jQuery,您需要记住首先包括它(在
的顶部),然后您应该在以后定义JavaScript表。通常的做法是在末尾,就在
标记之前

<script type="text/javascript" src="js.js"></script>
</body>
如果您想使用
开关
,那么至少要让它工作,您需要给出它的大小写。开关(…)内的内容是它将用于检查的大小写。 如果我放置
开关(x)
并将
x
定义为
var x=1
var x=“one
,我们将使用它来决定使用哪种情况:
案例1:
案例“一”:
将被执行

var x = 1;
var y = "one";
switch(y) {
    case 1:
        // "y" is not 1.
        break;
    case "one":
        // "y" is "one", so this will be exectuted.
        break;
}
因此,我们需要定义按钮何时为“好”或“坏”。您可以通过使用文本值来实现这一点,如:

var myMark = $(this).val();
switch(myMark) {
    case "Select bad points":
        $(this).val("Select good points");
        break;
    case 'Select good points':
        $(this).val("Select bad points");
        break;
}
$(.btn更改”)。在(“单击”,函数()上{
var nextMark=$(本);
警报(“您按下了“+nextMark.val()+”按钮”);
/*可选方法:*/
//如果(nextMark.val()=“选择好的点”){
//nextMark.val(“选择缺点”);
//}其他{
//nextMark.val(“选择好点”);
// }
var myMark=$(this.val();/*或var myMark=nextMark.val()*/
开关(myMark){
案例“选择缺点”:
$(this).val(“选择好的点”);
打破
案例“选择好的点”:
$(this.val(“选择坏点”);
打破
}
});


我认为您在switch语句中的赋值不正确。没有getElementsByCassName()方法。[它们区分大小写]。好的情况是,选择器只是在没有任何选择器的情况下更改btn。首先,
文档。getElementsByCassName
不存在(是的,在JS中大小写很重要)第二,它返回一个节点列表/集合(请仔细阅读这意味着什么,以及如何使用它们),最后,jQuery和“香草”JS的奇怪混合是什么…?当您试图更改按钮文本时,只需使用
$(this).val(“新文本”)
。感谢您提供的详细信息-非常感谢,我才刚刚开始。
if (nextMark.val() == "Select good points") {
    nextMark.val("Select bad points");
} else {
    nextMark.val("Select good points");
}
var x = 1;
var y = "one";
switch(y) {
    case 1:
        // "y" is not 1.
        break;
    case "one":
        // "y" is "one", so this will be exectuted.
        break;
}
var myMark = $(this).val();
switch(myMark) {
    case "Select bad points":
        $(this).val("Select good points");
        break;
    case 'Select good points':
        $(this).val("Select bad points");
        break;
}