【发布时间】:2016-01-11 17:21:12
【问题描述】:
这是我第一次尝试 JQuery,我正在使用来自 http://www.timeanddate.com 的嵌入式 iframe 构建世界时钟 - 概念是用户从下拉列表中选择城市,它将显示该城市的正确时间
<div>
<select>
<option value="n136" selected>London</option>
<option value="n240">Sydney</option>
<option value="n179">New York City</option>
</select>
</div>
<div class ="n136 time"><iframe src="https://freesecure.timeanddate.com/clock/i50ppgou/n136/tluk/fcf90/tct/pct/ftb/bo2/pa10/th1" frameborder="0" width="80" height="38" allowTransparency="true"></iframe></div>
<div class ="n240 time"><iframe src="https://freesecure.timeanddate.com/clock/i50ppgou/n240/tluk/fcf90/tct/pct/ftb/bo2/pa10/th1" frameborder="0" width="80" height="38" allowTransparency="true"></iframe></div>
<div class ="n179 time"><iframe src="https://freesecure.timeanddate.com/clock/i50ppgou/n179/tluk/fcf90/tct/pct/ftb/bo2/pa10/th1" frameborder="0" width="80" height="38" allowTransparency="true"></iframe></div>
jQuery
$(document).ready(function() {
$("select").change(function() {
$(this).find("option:selected").each(function() {
if ($(this).attr("value") == "n136") {
$(".time").not(".n136").hide();
$(".n136").show();
} else if ($(this).attr("value") == "n240") {
$(".time").not(".n240").hide();
$(".n240").show();
} else if ($(this).attr("value") == "n179") {
$(".time").not(".n179").hide();
$(".n179").show();
} else {
$(".time").hide();
}
});
}).change();
});
它有效。 FIDDLE
问题是我还有 10 个世界时间要添加,这将成为一个非常大的脚本,将加载 13 个世界时间,隐藏 12 个,这似乎是非常糟糕的做法,我认为如果只有一个 IFrame,它可以大大改进已加载,然后当用户从下拉列表中选择一个城市时,Iframe 的 URL 的值更改部分(好像 n*** 数字是一个变量)到 div 类,因为它们中的每一个都是每个的正确代码城市。这样会更有效率。
然而,我似乎已经达到了 JQuery 的极限,如果有人可以帮助我,甚至让我开始,我将不胜感激。
【问题讨论】:
-
您是否尝试过简单地设置
iframe的src属性,您在url 中需要不同代码的问题可以使用string.format 模式中的replace 来解决
标签: javascript jquery html iframe