jQuery—在页面加载时执行的两个if-else语句

jQuery—在页面加载时执行的两个if-else语句,jquery,Jquery,编辑:两个if-else语句都在执行。- 我有一张有钮扣的桌子。在页面加载时,如果按钮的标签是“Hello”,我想将其更改为其他内容。我有if-else语句,但一直都在执行这两个if-else语句。我不知道这里出了什么问题 $(document).ready( function() { if($('button').val() == "Hello" ) { alert("Hello I am in if"); $(this).removeClass('btn-d

编辑:两个if-else语句都在执行。- 我有一张有钮扣的桌子。在页面加载时,如果按钮的标签是“Hello”,我想将其更改为其他内容。我有if-else语句,但一直都在执行这两个if-else语句。我不知道这里出了什么问题

 $(document).ready( function() {

   if($('button').val() == "Hello" ) {
      alert("Hello I am in if");
      $(this).removeClass('btn-danger');
      $(this).addClass('btn-primary');
      $(this).text('ifif');
    }
    else {
     alert("Hello I am in else");
     $(this).removeClass('btn-primary');
     $('button').addClass('btn-danger');
     $('button').text('elseelse');
    }
  });
每次按钮的标签都会更改为elseelse,即使按钮的初始标签是“Hello”。首先,它进入if并将标签更改为ifif,然后进入else。如果我将它放入click事件函数中,效果会很好。但在页面加载时,它不能正常工作

您的答复将不胜感激


谢谢

您应该使用
text()
方法,而不是
val()
方法来获取按钮的文本。另外,请注意,
$('button')
将选择页面中的所有按钮,这可能不是您想要的

$('button').text() == "Hello"
另外,我注意到您在文档就绪处理程序中使用了
$(this)
,这似乎是错误的,因为
this
不会引用您的按钮。你应该这样做:

$(document.ready(function () {
    var $btn = $('#your_button_id');

    if ($btn.text() === 'Hello') {
        $btn.removeClass('btn-danger');
        //...
    }
});

“实际上,我希望选择所有按钮。”

根据这些不同的要求,您可以做以下几点:

HTML

试一试

演示:

演示:

您应该使用
。each()
函数,演示:


“Button”或“Button s”?也发布您的makrup。。发布HTML页面中有多少个按钮有多少个按钮。表的最后一列只有按钮。这只是一个例子。在实际场景中,我希望更改所有已通过的按钮的文本,并将css类添加到其中。如果脚本位于页面顶部(在
中的某个位置),则可能需要检查脚本的运行顺序然后它可能无法工作,因为那时可能没有加载所有的
按钮。
。实际上,我希望选择所有按钮。@user2174925然后您需要使用
.each()
,并在所有按钮之间循环。否则,它将只是页面上第一个要进行检查的按钮。@plalx使用text()方法没有帮助。使用val()方法在click事件中运行良好。所以我认为问题出在翻页过程中load@BlakePlumb是的,这不令人担心。一旦if语句启动,我就可以处理这个问题executing@plalx我用了你给的密码。。它仍然在给我艾尔塞尔斯。我不知道为什么它不起作用。我尝试了$(function(){…并将其放入$(document).ready(function(){…代码看起来很好..我不知道发生了什么..在我的html中我有..它给了我“世界”。如果执行和其他操作,我需要Helloboth谢谢,这与上面相同。但是我没有任何进展。请阅读上面由提供的答案中的注释@plalx@user2174925请分享使用的按钮和table@user2174925我们哈我们提供了演示,请编辑示例以重新创建problem@user2174925是否区分大小写您提供的代码很好。问题不会在fiddle上重现。如前所述,如果我将代码放入click事件中,它可以正常工作。问题是当它发生在页面加载时;if和else都在执行。
<button class="btn-danger">Hello</button>
<button class="btn-danger">Hello</button>
<button class="btn-danger">Hello></button>
<button class="btn-danger">Hello></button>
<button class="btn-primary">Yo</button>
$(function () {
    var classes = 'btn-danger btn-primary';

    $('button:not(:contains(Hello))').toggleClass(classes).text('elseelse');
    $('button:contains(Hello)').toggleClass(classes).text('ifif');

});
$(function(){
    $('button').not(':contains(Hello)').removeClass('btn-primary').addClass('btn-danger').text('elseelse');

    $('button:contains(Hello)').removeClass('btn-danger').addClass('btn-primary').text('ifif');
});
$(function(){
    $('button').each(function(){
        var $this = $(this);
        if($this.text() == 'Hellow'){
            $this.removeClass('btn-danger').addClass('btn-primary').text('ifif');
        } else {
            $this.removeClass('btn-primary').addClass('btn-danger').text('elseelse');
        }
    })
});
$('button').each(function () {
    if ($(this).val() == 'hello') {
        $(this).text('Hello');
    } else {
        $(this).text('World');
    }
});