'if' - 'j'函数中的'else'语句

时间:2010-03-21 23:15:07

标签: javascript jquery if-statement

我在JavaScript和jQuery中有以下代码:

     $("<li />")

     .html('Some HTML')

我希望能够使用if - else语句更改.html的内容。我的代码应该是这样的,但它不起作用。

var showinfo = <?php echo '$action'; ?>

$("<li />")

if (showinfo == 'action1'){
    .html('Some HTML')
else {
    .html('Other HTML')
}

我应该如何改变它?

5 个答案:

答案 0 :(得分:6)

三元运营商?

$("<li />").html((showinfo == 'action1') ? 'Somehtml' : 'Other html');

要理解的重要一点是,您的第一部分代码被解释为一个语句,而不是两个:

 $("<li />")
 .html('Somehtml')

 //Is the same as:
 $("<li />").html('Somehtml');

由于你没有使用分号来终止你的陈述,你会变得混乱。 JavaScript允许它支持遗留代码,但是如果你现在编写代码,你真的应该使用它们。

答案 1 :(得分:3)

不要打断jquery链接:

var showinfo = '<?php echo $action; ?>'

if (showinfo == 'action1'){
    $("<li />").html('Somehtml')     
} else {
    $("<li />").html('Other html')
}

注意:我还更正了您的echo语句中的错误以及if...else中缺少的括号

答案 2 :(得分:2)

var listItem = $("#yourLi");

if (showinfo == 'action1'){
 listItem.html('Somehtml')     
else {
  listItem.html('Other html')
  }

答案 3 :(得分:1)

您可以按如下方式缩短它:

var showinfo = '<?php echo '$action'; ?>'


$("<li />")
.html( (showinfo == 'action1' ? 'Somehtml' : 'Other html') );

.html可以在同一行或单独一行,因为语句以分号结束。如果你在一个选择器上有多个方法,我发现在多行上分离它们更具可读性。

答案 4 :(得分:1)

Adam's answer非常适合。为了节省一些不必要的重复,你可以稍微修改它:

var
    showinfo = '<?php echo $action; ?>',
    listitems = $("<li />");

if (showinfo == 'action1') {
    listitems.html('Somehtml');     
} else {
    listitems.html('Other html');
}