JS:连接html(带+)->如果条件为true,只打印html

JS: concatenating html (with +) -> only print html if condition is true?

本文关键字:html 条件 如果 打印 gt true 连接 JS      更新时间:2023-09-26

不太知道如何为这个问题命名。我的问题可能相当简单,但我不知道正确可行的解决方案。

if ( rt > 0 ) retweets = '<div class="stats"><b>' + rt + '</b> Retweets</div>';
var tweet = 
'<article class="item tweet">' +
    '<h4 class="tweet_from_user_name">' + tw.from_user_name +
    '<p class="tweet_text">' + tw.text + '</p>' +
    retweets + 
'<article>';
$('#twitter').html(tweet);

所以我的问题是这个。我正在打印一条带有"用户名"answers"推文文本"的推文,并希望显示"转发",但前提是它们可用。

所以我不想写"0转发",而是不显示包含转发的<div>

如果rt小于0,我如何确保retweets变量不是printet。现在这是可行的。然而,唯一的问题是,如果rt小于0,那么retweets现在是未定义的。

谢谢你的帮助。

var retweets = "";
if ( rt > 0 ) retweets = '<div class="stats"><b>' + rt + '</b> Retweets</div>';

这里有一个没有任何额外变量的简短方法:

var tweet = 
'<article class="item tweet">' +
    '<h4 class="tweet_from_user_name">' + tw.from_user_name +
    '<p class="tweet_text">' + tw.text + '</p>' +
    (rt > 0 ? '<div class="stats"><b>' + rt + '</b> Retweets</div>' : '') + 
'<article>';
retweets = (rt > 0) ? ('<div class="stats"><b>' + rt + '</b> Retweets</div>') : "";

如果没有转发,则将retweets设置为空字符串

if ( rt > 0 ) {
    retweets = '<div class="stats"><b>' + rt + '</b> Retweets</div>';
} else {
    retweets = '';
}

您可以尝试三元

var tweet = 
'<article class="item tweet">' +
    '<h4 class="tweet_from_user_name">' + tw.from_user_name +
    '<p class="tweet_text">' + tw.text + '</p>' +
    (rt > 0 ? retweets : "") + 
'<article>';
retweets = (rt > 0) ? '<div class="stats"><b>' + rt + '</b> Retweets</div>' : '';

基本上,如果rt小于或等于0,则将其设置为空字符串。

只需使用if语句

if ( rt > 0 ) retweets = '<div class="stats"><b>' + rt + '</b> Retweets</div>';
var tweet = 
'<article class="item tweet">' +
    '<h4 class="tweet_from_user_name">' + tw.from_user_name +
    '<p class="tweet_text">' + tw.text + '</p>';
if rt > 0 {
 var tweet+= retweets
}
var tweet+='<article>';
$('#twitter').html(tweet);