首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery从其他div加载内容

jQuery从其他div加载内容
EN

Stack Overflow用户
提问于 2013-05-31 07:07:14
回答 3查看 580关注 0票数 0

所以我有几个隐藏的div,当用户单击一个图像时,它将从该div加载内容。我有一个有效的方法,但我认为它不是正确的方法。

HTML

代码语言:javascript
复制
<div class="slide">
    <img src="images/image1.jpg" alt="" id="project-1" /> 
    <img src="images/image2.jpg" alt="" id="project-2" /> 
    <img src="images/image3.jpg" alt="" id="project-3" />  
</div>
<div id="project-1" class="hidden">
    <p>Project </p>
</div>
<div id="project-2" class="hidden">
    <p>Project 2</p>
</div>
<div id="project-3" class="hidden">
    <p>Project 3</p>
</div>
<div id="main">

</div>

当前jQuery:

代码语言:javascript
复制
$(document).ready(function()
{
    $('.slide img').click(function ()
    {
        var project = $(this).attr('id');   
        $('#main').fadeOut('slow', function() {
            $("#main").load(window.location.pathname+" #"+project+" > *").fadeIn('slow');
        });
    });
});

正如你所看到的,它使用load()从同一页加载数据,有没有比load更好的函数,我想从一个div中获取所有数据并将其放入#main div中。project var存储我想要从中获取数据的div的名称。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-31 07:10:44

您不能使用同一ID两次,ID是唯一的,因此您需要更改以下内容:

代码语言:javascript
复制
<div class="slide">
    <img src="images/image1.jpg" alt="" data-id="project-1" /> 
    <img src="images/image2.jpg" alt="" data-id="project-2" /> 
    <img src="images/image3.jpg" alt="" data-id="project-3" />  
</div>
<div id="project-1" class="hidden">
    <p>Project </p>
</div>
<div id="project-2" class="hidden">
    <p>Project 2</p>
</div>
<div id="project-3" class="hidden">
    <p>Project 3</p>
</div>
<div id="main">

</div>

然后您可以执行以下操作:

代码语言:javascript
复制
$(document).ready(function() {
    $('.slide img').on('click', function() {
        var project = $('#' + $(this).data('id')).html();
        $('#main').fadeOut('slow', function() {
            $(this).html(project).fadeIn('slow');
        });
    });
});
票数 1
EN

Stack Overflow用户

发布于 2013-05-31 07:11:08

您可以使用jQuery的html()函数:

http://api.jquery.com/html/

代码语言:javascript
复制
$(document).ready(function()
{
    $('.slide img').click(function ()
    {
        var project = $(this).attr('id');
        $("#main").html($("#" + project).html());
    });
});

编辑:您不需要通过ID来确定目标,所以这一位:

代码语言:javascript
复制
        var project = $(this).attr('id');
        $("#main").html($("#" + project).html());

可以简化为:

代码语言:javascript
复制
        $("#main").html($(this).html());
票数 1
EN

Stack Overflow用户

发布于 2013-05-31 07:15:44

不能有多个元素具有相同的ID,因此需要更改标记。单击图像后,可以克隆相应的div,然后将克隆的元素插入到main div中:

HTML

代码语言:javascript
复制
<div class="slide">
    <img src="images/image1.jpg" alt="" data-div-id="project-1" /> 
    <img src="images/image2.jpg" alt="" data-div-id="project-2" /> 
    <img src="images/image3.jpg" alt="" data-div-id="project-3" />  
</div>

jQuery

代码语言:javascript
复制
$(document).ready(function() {
    $('.slide img').click(function () {
        var project = $('#' + $(this).data('div-id')).clone();   
        $('#main').fadeOut('slow', function() {
            $("#main").empty().append(project).fadeIn('slow');
        });
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16847294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档