jQuery - 在页面加载时执行if else语句

时间:2013-04-20 05:32:00

标签: jquery

编辑:两个if else语句都在执行。 - 我有一个带按钮的桌子。在页面加载时,如果按钮的标签是“Hello”,我想将其更改为其他内容。我有if-else语句但是一直都在执行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');
    }
  });

每次,即使按钮的初始标签为“Hello”,按钮的标签也会变为elseelse。首先它进入内部,如果并将标签更改为ifif然后也进入其他内部。如果我将它放在单击事件函数中,它工作正常。但是在页面加载时它无法正常工作。

您的回复将不胜感激。

由于

3 个答案:

答案 0 :(得分:1)

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

$('button').text() == "Hello"

另外,我注意到你在文档就绪处理程序中使用了$(this),这似乎是错误的,因为this不会是对你的按钮的引用。你应该做点什么:

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

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

“实际上我想要选择所有按钮。”

根据这些不同的要求,您可以采取以下措施:

http://jsfiddle.net/WpJpV/1/

HTML

<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>

JS

$(function () {
    var classes = 'btn-danger btn-primary';

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

});

答案 1 :(得分:0)

尝试

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

    $('button:contains(Hello)').removeClass('btn-danger').addClass('btn-primary').text('ifif');
});

演示:Fiddle

或者

$(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');
        }
    })
});

演示:Fiddle

答案 2 :(得分:0)

您应该使用.each()函数,演示:http://jsfiddle.net/UCEAw/1/

$('button').each(function () {
    if ($(this).val() == 'hello') {
        $(this).text('Hello');
    } else {
        $(this).text('World');
    }
});