Javascript jquery中的if条件
我尝试在jquery对象上使用html方法有条件地设置元素的html内容。 我不确定哪种方法是正确的。是在html方法调用中使用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"/>' }) .
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));