使用onClick var在javascript中更改id?

时间:2014-03-07 10:23:33

标签: javascript jquery html iframe

我设法让一些js工作让我惊讶,现在我想让它变得更复杂,这是出于我的专业知识。

点击后我有一个按钮会重新加载我页面上的iframe。我有多个iframe,但隐藏了1个iframe。然后我使用jquery显示不同的iframe并隐藏前一个,具体取决于点击的导航按钮。例如“1-btn”(nav btn)与“1-win”(iframe)相关联,“2-btn”(nav btn)与“2-win”(iframe)等相关联。所以当你点击“2-btn”时,“1-win”iframe隐藏,显示“2-win”iframe。现在我想改变我的代码,所以这与我重新加载javasrcipt有关。目前,我的js仅通过iframe ID重新加载1个iframe。我想每次更改此ID到不同的iframe。这将允许我的重载btn仅重新加载显示的当前iframe,而不是任何隐藏的其他iframe。

这是我的Reload js

function Reload () {
var f = document.getElementById('1-win');
f.src = f.src;
}

正如您所看到的,此重新加载脚本仅适用于iframe“1-win”。当我点击“2-btn”导航以显示“2-win”iframe(并隐藏“1-win”)时,重新加载按钮仍然只适用于“1-win”。因此,我希望它也能改变。对于例如当我点击“2-btn”(nav)显示“2-win”iframe时我想将重新加载ID更改为“2-win”。

我想在我的导航按钮中使用onClick,它通过导航btn所绑定的iframe的id。但是,我不知道该怎么做。

有关完整代码,请参阅: https://github.com/tmacka88/Service-Manager 对不起,如果这没有任何意义,我想不出更容易解释的方法。

由于

3 个答案:

答案 0 :(得分:0)

修改
由于问题得到了更好的定义,以下答案可能仍然适用,也可能不适用。


您可以尝试的一种方法是在页面上有一个隐藏字段,其中包含iframe的Id的分号分隔列表。 E.g。

<input type="hidden" name="iframeids" value="1;2;3;4;5">

在按钮的click事件中,调用一些获取隐藏字段value的JavaScript,在分号前获取第一个标记,然后重新组织字符串。一个例子:

// Next value is 1
// Use 1 in your JS
// Put 1 to the end, next is now 2
<input type="hidden" name="iframeids" value="2;3;4;5;1">

您将在JS函数中包含重新安排等的逻辑。

答案 1 :(得分:0)

现在问题得到了更好的定义,我们可以找到合适的解决方案。

以下是一些设计注意事项:

  1. 理想情况下,您不希望为放在页面上的每个iframe手动添加新按钮。主要原因是代码维护。如果您要添加新的iframe,或删除一个iframe,您的代码将无法正常运行。此外,所需的加价金额也会不必要地高。
  2. jQuery会让你的生活更轻松,虽然它不是必需的,它会削减很多代码。我不能强调首先了解JavaScript基础知识的重要性,但这是你学习的责任 对于第1点,我们想要的是通用解决方案,这样如果您添加更多iframe,则会自动添加按钮。 JavaScript是这样做的方式(我假设这只是HTML,而不是ASP.net或php或其他一些服务器端
  3. 第2点 - jQuery将帮助第1点。

    现在我们有了这个理解,让我们来看看我们需要做的事情:

    1. 在JavaScript中,循环浏览页面上的iframe标记
    2. 对于每个iframe,使用jquery生成一个按钮,使用src中的idiframe等值作为按钮上的属性
    3. 向按钮添加一些click - 事件代码,确定点击时需要执行的操作
    4. 再次使用jQuery,将新创建的按钮添加到DOM

答案 2 :(得分:0)

这就是诀窍:

function Reload()
{
    $("iframe").each(function() 
    {
        if($(this).is(':visible'))
            $(this).attr('src', $(this).attr('src'));
    });
}