不完整语句的三元运算
Ternary operation of an incomplete statement
语法问题;是否可以执行以下操作:
var home_page_feed;
var videos = $get_utoob_videos;
for each(video in videos) {
if(video.special_interests)
$(home_page_feed).prepend(video.thumbnail);
else
$(home_page_feed).append(video.censornail);
}
...但是在单三元运算中,像这样:
for each(video in videos)
$(home_page_feed) .CHAIN.
video.special_interests ?
// true - chain this
.prepend(video.thumbnail) :
// false - chain this instead
.append(video.censornail);
我把 .CHAIN. 作为占位符。是否有 jQuery 函数可以通过三元运算赋值链接到不完整的语句?我喜欢将三元用于语句和操作,因为它很简单,因此我们将不胜感激。
回答
感谢@Barmar,他建议使用 eval() 函数,我能够将其包装在三元运算中。
$.each(videos, function(i, video) {
eval ("$(home_page_feed)" +
((video.special_interest) ?
".prepend(video.thumbnail)" :
".append(video.censornail)"
)
);
});
这应该会有帮助
var home_page_feed;
var videos = $get_utoob_videos;
for each(video in videos) {
(video.special_interests)?$(home_page_feed).prepend(video.thumbnail): $(home_page_feed).append(video.censornail);
}
希望对您有所帮助
你可以把三进制放在.append()
的参数中
$.each(videos, function(i, video) {
$(home_page_feed).append(video.special_interests ? video.thumbnail : video.censornail);
});
或者你可以把它放在索引中:
$.each(videos, function(i, video) {
$(home_page_feed).append(video[video.special_interests ? "thumbnail" : "censornail"]);
});
注意上一版本中的引号。
您可以使用 eval()
编写您的代码
$.each(videos, function(i, video) {
var chain = video.special_interest ?
".prepend(video.thumbnail)" :
".prepend(video.censornail)";
eval ("$(home_page_feed)" + chain);
});
语法问题;是否可以执行以下操作:
var home_page_feed;
var videos = $get_utoob_videos;
for each(video in videos) {
if(video.special_interests)
$(home_page_feed).prepend(video.thumbnail);
else
$(home_page_feed).append(video.censornail);
}
...但是在单三元运算中,像这样:
for each(video in videos)
$(home_page_feed) .CHAIN.
video.special_interests ?
// true - chain this
.prepend(video.thumbnail) :
// false - chain this instead
.append(video.censornail);
我把 .CHAIN. 作为占位符。是否有 jQuery 函数可以通过三元运算赋值链接到不完整的语句?我喜欢将三元用于语句和操作,因为它很简单,因此我们将不胜感激。
回答 感谢@Barmar,他建议使用 eval() 函数,我能够将其包装在三元运算中。
$.each(videos, function(i, video) {
eval ("$(home_page_feed)" +
((video.special_interest) ?
".prepend(video.thumbnail)" :
".append(video.censornail)"
)
);
});
这应该会有帮助
var home_page_feed;
var videos = $get_utoob_videos;
for each(video in videos) {
(video.special_interests)?$(home_page_feed).prepend(video.thumbnail): $(home_page_feed).append(video.censornail);
}
希望对您有所帮助
你可以把三进制放在.append()
$.each(videos, function(i, video) {
$(home_page_feed).append(video.special_interests ? video.thumbnail : video.censornail);
});
或者你可以把它放在索引中:
$.each(videos, function(i, video) {
$(home_page_feed).append(video[video.special_interests ? "thumbnail" : "censornail"]);
});
注意上一版本中的引号。
您可以使用 eval()
$.each(videos, function(i, video) {
var chain = video.special_interest ?
".prepend(video.thumbnail)" :
".prepend(video.censornail)";
eval ("$(home_page_feed)" + chain);
});