Javascript jquery中的if条件

Javascript jquery中的if条件,javascript,jquery,html,Javascript,Jquery,Html,我尝试在jquery对象上使用html方法有条件地设置元素的html内容。 我不确定哪种方法是正确的。是在html方法调用中使用if语句,还是其他什么 例如,我尝试使用jquery在图像上设置不同的大小 if(settings.imagesize =='1') { // do something } 所以我试着把它作为一个参数放在html方法中 .html(if(settings.imagesize=='1') { '<img src="image1.png"/>' }) .

我尝试在jquery对象上使用html方法有条件地设置元素的html内容。 我不确定哪种方法是正确的。是在html方法调用中使用
if
语句,还是其他什么

例如,我尝试使用jquery在图像上设置不同的大小

if(settings.imagesize =='1') {
// do something 
 }
所以我试着把它作为一个参数放在html方法中

.html(if(settings.imagesize=='1') { '<img src="image1.png"/>' })
.html(如果(settings.imagesize=='1'){'})
为了给您提供上述代码的上下文,以下是完整结构的外观:

for (var i = 1; i <= 25; i++) {
    var clone = drop.clone()
        .appendTo('body')
        .css(direction, Math.random() * jQuery(window).width() - 20)
        .css('top', snowTop)
        .html(
    if (i == '21') {})
}

for(var i=1;i您不能在方法调用中执行if语句,至少不像这样

如果,如果你真的必须的话,你可以做一个三元的

.html(settings.imagesize=='1' ? '<img src="image1.png"/>' : '');
.html(settings.imagesize=='1'?'':'');

但是最合适的方法是在调用之前处理所有逻辑

var content;
if(settings.imagesize=='1') 
{ 
    content = '<img src="image1.png"/>';
}
something.html(content);
var内容;
if(settings.imagesize=='1')
{ 
内容='';
}
html(content);

如果您真的需要在html调用中使用If,那么可以将其作为一个即时函数

.html((function(){
    if(settings.imagesize=='1'){
        return '<img src="image1.png"/>';
    }
    else{
        return '';
    }
})());
.html((函数(){
if(settings.imagesize=='1'){
返回“”;
}
否则{
返回“”;
}
})());

但是这样做会使代码变得难以阅读……

您需要这样做

var content = ''
if(settings.imagesize =='1') {
    content = '<img src="image1.png"/>'
}

.html(content)
var content=''
如果(settings.imagesize=='1'){
内容=“”
}
.html(内容)
编辑

您可以使用这样的三元运算符来清除代码

var content = (settings.imagesize =='1') ? '<img src="image1.png"/>' : ''

.html(content)
var content=(settings.imagesize='1')?“”
.html(内容)
.html

中,这比内联调用if条件更具可读性。您可以使用:

.html((settings.imagesize=='1')?''other html');
这不是一个愚蠢的问题:)

这就是你能做到的。虽然我不建议做这样的事情。你可以在外面做这样的操作

.html(settings.imagesize=='1'?'':'');

如果

.html(i=='21' ? true : false)

您只有一个选项。请尝试使用
三值运算符

.html((settings.imagesize=='1') ? '<img src="image1.png"/>' : '' )
.html((settings.imagesize='1')?“”:“”)

但最好使用
if
条件,而不是
三元

对于较长的示例,与其他答案相同的逻辑如下所示:

for (var i = 1; i <= 25; i++) {
    var content = '';

    if(i == 21)
        content = 'something';

    var clone = drop.clone()
        .appendTo('body')
        .css(direction, Math.random() * jQuery(window).width() - 20)
        .css('top', snowTop)
        .html(content);
}

something ? thenDoThis() : doThat();
这里的区别在于方法调用中不允许使用
if
,而三元语句则可以:

console.log(if(something){ thenDoThis(); });
// SyntaxError: Unexpected token if

console.log(something ? thenDoThis() : doThat());
// works fine
你能检查一下这个吗

.html(i=='21' ? true : false)

首先,您可以使用:

.html((settings.imagesize='1')?“”:“”)
但是我认为更好的方法是调用函数

.html(func(settings.imagesize));
function func(size){
     if(size === 1)
        return '<img src="image1.png"/>';
     return '';
} 
.html(func(settings.imagesize));
函数func(大小){
如果(大小==1)
返回“”;
返回“”;
} 
或使用自调用功能

.html(
(function func(size){
     if(size === 1)
        return '<img src="image1.png"/>';
     return '';
})(settings.imagesize)); 
.html(
(函数func(大小){
如果(大小==1)
返回“”;
返回“”;
})(设置。图像大小));

是否可以在html方法中使用if条件?@User否,它会导致语法错误(我相信)
.html(i=='21' ? true : false)
.html((settings.imagesize=='1') ?'<img src="image1.png"/>' : '' )
.html(func(settings.imagesize));
function func(size){
     if(size === 1)
        return '<img src="image1.png"/>';
     return '';
} 
.html(
(function func(size){
     if(size === 1)
        return '<img src="image1.png"/>';
     return '';
})(settings.imagesize));