首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用javascript更改DIV按钮的值

使用javascript更改DIV按钮的值
EN

Stack Overflow用户
提问于 2018-06-25 21:04:21
回答 3查看 118关注 0票数 0

这是一个新手问题:

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

代码语言:javascript
复制
<div>    
    <input class="btn-change" type="button" value="Select good points" />
</div>

为了避免显示太多的按钮,我想让按钮在

代码语言:javascript
复制
value="Select good points"

代码语言:javascript
复制
value="Select bad points

所以在javascript中,我使用

代码语言: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变量根据按钮的值更改放置在小叶贴图上的标记的颜色。

警报显示案例结构正在工作,但按钮值没有更改-执行此操作的正确方法是什么?

jsfiddle right here

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-25 21:10:31

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

代码语言:javascript
复制
var nextMark = "good";
$(".btn-change").on("click", function() {

  switch (nextMark) {
    case "bad":
      nextMark = "good";
      $(".btn-change").val("Select good points");
      break;
    case 'good':
      nextMark = "bad";
      $(".btn-change").val("Select bad points");
      break;
  }
})
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input class="btn-change" type="button" value="Select good points" />
</div>

票数 0
EN

Stack Overflow用户

发布于 2018-06-25 21:14:42

您需要将document.getElementsByClassName("btn-change")[0].value =的索引指定为0

代码语言:javascript
复制
  var nextMark = "good";
    $(function(){
    $(".btn-change").on("click", function() {
        alert("you pressed the " + nextMark + " button");

        switch(nextMark) {
            case "bad":
                nextMark = "good"
               document.getElementsByClassName("btn-change")[0].value = "Select good points";
                break;
            case 'good':
                nextMark = "bad"
              document.getElementsByClassName("btn-change")[0].value = "Select bad points";
                break;
        }
    });
    })
代码语言:javascript
复制
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div>    
        <input class="btn-change" type="button" value="Select good points" />
    </div>

票数 0
EN

Stack Overflow用户

发布于 2018-06-25 21:44:48

首先,在结束… .on("click" …时,您缺少一个结束的);

如果您使用的是jQuery,则需要记住首先包含该表(在<head>中位于顶部),然后再定义JavaScript表。常见的做法是在末尾,就在</body>标记之前。

代码语言:javascript
复制
<script type="text/javascript" src="js.js"></script>
</body>

接下来,对于警报,未定义nextMark。你可以用this做到这一点。在使用jQuery时,您应该遵守它,所以请使用$(this)

将其放入函数中以定义nextMark

var nextMark = $(this);

完成后,您需要获取它的值,除非它会显示为you pressed the [object Object] button。要做到这一点,可以在目标的末尾添加.val(),方法是在警报中添加jQuery;so nextMark.val()

现在要进行切换,您可以使用一条简单的if-else语句在两者之间进行切换:

代码语言:javascript
复制
if (nextMark.val() == "Select good points") {
    nextMark.val("Select bad points");
} else {
    nextMark.val("Select good points");
}

如果你想使用switch,那么至少要让它工作,你需要告诉它它是什么情况。(…)中的内容开关的情况是它将用来检查的情况。如果我放入switch(x)并将x定义为var x = 1var x = "one,我们将使用这一点来决定使用哪种情况:case 1:case "one":将被执行。

代码语言:javascript
复制
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;
}

因此,我们需要定义按钮何时是“好”或“坏”。您可以通过使用文字值来完成此操作,例如:

代码语言:javascript
复制
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;
}

代码语言:javascript
复制
$(".btn-change").on("click", function() {

	var nextMark = $(this);
    alert("you pressed the " + nextMark.val() + " button");

    /* Optional method: */
    // if (nextMark.val() == "Select good points") {
    // 	nextMark.val("Select bad points");
    // } else {
    // 	nextMark.val("Select good points");
    // }

	var myMark = $(this).val(); /* or var myMark = nextMark.val(); */
    switch(myMark) {
		case "Select bad points":
			$(this).val("Select good points");
			break;
		case 'Select good points':
			$(this).val("Select bad points");
			break;
    }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- jQuery included in this example to make it work -->

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51024167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档