从同一文本链接交换div内容

时间:2009-10-07 16:16:04

标签: javascript jquery

我无法使用传统的JavaScript解决问题,并且想知道是否有使用jQuery的简单解决方案。我在网上搜索过,但却找不到任何我想做的事情。

所以..这就是我想要实现的目标:
我有2个div的内容,第一个显示,第二个隐藏。 在这些div的下方和外部我有一个文本链接,当第一次单击时,将第一个div上的内容与第二个div交换。当我第二次点击时,我希望它交换回第一个div等等。每次点击文本链接时,它应该在每个onClick上的2个div之间切换。

为了给它添加更多的上下文,我的div包含一个带有2个标签和文本输入的表单。在第一个div中,标签显示To:和From:在第二个div中,顺序只是翻转为:From:然后To:
在输入下方我有一个文本链接,允许用户切换订购From:和To:


文字输入
发件人:
文字输入
- 文字链接 -

单击文本链接时,我希望将内容替换为:

发件人:
文字输入

文字输入

以下是我尝试过的示例 - 注意:这非常接近我的想法,除非第二次点击链接,没有任何反应

<script type="text/javascript">

<code>function hideID(objID){
var element = document.getElementById(objID);
element.style.display="none";
}
function showID(objID){
var element = document.getElementById(objID);
element.style.display="block";
}</code>

</script>


<div id="div1">content 1</div>


<div id="div2" style="display:none;">content 2</div>


<a href="" onClick="hideID('div1');showID('div2'); return false;">Reverse</a>

如果有人有任何想法,我会非常感激 亲切的问候 〜德克兰

5 个答案:

答案 0 :(得分:2)

使用jQuery,并根据您尝试过的简单显示/隐藏div的代码,如何(未经测试):

$(document).ready( function() {
  $("#div1").show();
  $("#div2").hide();
});

$("a#someIDhere").click( function() {
  $("#div1").toggle();
  $("#div2").toggle();
});

使用您可以在上面使用的ID标记<a>代码?

答案 1 :(得分:0)

$('#yourReverseAnchor').click(function(e) {
    var swap = $('div1').html();
    $('div1').html($('div2').html());
    $('div2').html(swap);
}

答案 2 :(得分:0)

使用jQuery非常简单:

<script type="text/javascript">
$(document).ready(function ()
{
    var a = $('#a'),
        b = $('#b');

    function swap()
    {
        var a_html = a.html();
        a.html(b.html());
        b.html(a_html);
    }

    $('#swap').click(swap);
});
</script>

<div id="a">first</div>
<div id="b">second</div>
<a id="swap">swap</a>

答案 3 :(得分:0)

使用jQuery,这变得简单:

<div id="div1">content 1</div>
<div id="div2" style="display:none;">content 2</div>
<a href="#" id="toggle">Reverse</a>

$(function() {
  $("#toggle").click(function() {
    var div1 = $("#div1");
    if (div1.is(":hidden")) {
      div1.show();
      $("#div2").hide();
    } else {
      div1.hide();
      $("#div2").show();
    }
    return false;
  });
});

在这种情况下操纵DOM没有意义,除非你没有告诉我们。根据需要隐藏和显示更容易。

答案 4 :(得分:0)

如果你想在不使用JQuery的情况下这样做:

<a href="#" onclick="hideShow('div1', 'div2');return false;">

<script language='javascript'>
function hideShow(divOneId, divTwoId)
{
 var divOne = document.getElementById(divOneId);
 var divTwo  = document.getElementById(divTwoId);


divOne.style.display =   (divOne.style.display == 'none') ? 'block' : 'none';
divTwo.style.display =   (divTwo.style.display == 'none') ? 'block' : 'none';


}

</script>