我正在开发一个Twitter小部件,它在代码开始时声明了tweetCount。它同时使用PHP和JavaScript。我试图通过硬编码来清理我已经工作的代码,简单地复制和粘贴,显然这是一个可怕的方法,特别是当我想稍后修改推文计数时。我知道在PHP中,您可以创建一个变量,根据循环中的迭代递增值,即tweet1,tweet2,tweet3等。我想知道如何在JavaScript或jQuery中实现相同的效果。下面是我目前拥有的JavaScript示例代码。如果您想查看完整脚本,请单击此处。如何自动递增JavaScript或jQuery中的代码?我看了这个stackoverflow帖子,但没有完全理解如何将其集成到我的代码中。可以在此处找到实时示例。非常感谢任何帮助。
编辑:
更新代码以反映PHP从Twitter API的JSON feed中获取的方式的性质
编辑2:
切换到纯JavaScript,使其更加清洁易用,除了清理代码并使所有调用都在客户端进行。我会更新代码以反映它。感谢您的建议和帮助!
编辑3:[最终结果]
所以我承诺要发布最终代码。这是结果,感谢您的帮助。我还从我的朋友那里得到了一点帮助。单击此处链接。有任何问题吗?请随时与我联系,我很乐意回答。通过切换到纯JavaScript,我删除了大约40行代码,以便您可以看到它有多么有用!此外,由于安全原因,Twitter API不允许客户端调用,所以我不得不在PHP中进行调用。很遗憾不能全部使用JavaScript完成,但我想我们必须接受脚本中的一些PHP。纯JavaScript中的代码更加清晰!
使JavaScript成为可能的代码:
<?php
$tweetData = file_get_contents("https://api.twitter.com/1/statuses/user_timeline.json?screen_name=$username&count=$tweetCount");
echo "<script> var tweets = " . $tweetData . ";</script>";
?>
初始代码:
<?php for($i = 0; $i < $tweetCount; $i++) { ?>
${"tweet{$i}"} = $decode[$i][text];
${"tweetTime{$i}"} = $decode[$i][created_at];
<script type="text/javascript">
var i = "<?php echo $i ?>";
var tweetTime1 = "<?php echo ${"tweetTime{$i}"} ?>";
var datebefore1 = new Date(tweetTime1.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/, "$1 $2 $4 $3 UTC"));
var tempdate1 = datebefore1.toString();
var date = "GMT-0800 (Pacific Standard Time)";
var date1 = tempdate1.split(date)[0];
</script> <?php
} ?>
<script>
标签以允许浏览器缓存和更好的代码维护。 - Aram Kocharyan$.get()
并从那里开始工作。 - Aram Kocharyan${"tweet{$i}"} = $decode[$i][text];
来做的,其中decode是从json_decode生成的。我从这个链接中找到了这个想法,然后根据我的需求进行了修改。 - Elias Ranz