2010-01-06 86 views
0

有兴趣知道我是否可以使用jQuery在页面上查找第一个图像并将其显示在调整后的缩略图内,单击放大。例如,在这个特定的博客中,当客户端向图像添加图像时,jQuery将查找第一个图像,并将其显示为特定位置中的可点击缩略图。如果详细图片可以在thickbox,facebox或其他jQuery覆盖窗口中显示,那将是理想的。显示ID内的第一个图像

在此先感谢您的想法。 杰克逊

回答

2

您可以使用:first选择器来查找第一个图像,然后使用克隆,您可以将图像复制到任何其他位置,并从那里修改它。

$(document).ready(function() { 

    var firstImage = $('img:first'); 
    var link = $('<a />') 
        .attr('href', '#') 
        .append($('img:first').clone().css({ width:100, height:100 })) 
        .append($('<div />').text('Click to Enlarge')) 
        .click(function(e) { 
         e.preventDefault(); 
         // showDialog(); 
        }); 
    $('.imageThumbnail').append(link); 

    $('.imageDialog').append(firstImage.clone()); 

}); 
+0

当所有这些被持续存在的东西都是图片的src时,克隆会不会有点矫枉过正(特别是当两次完成时)? – Ariel 2010-01-06 16:06:52

+0

你只克隆HTML。恕我直言,影响将是最小的 – bendewey 2010-01-06 22:25:00

1

要找到你的页面的第一形象,你可以使用:first选择。

$("img:first")将选择第一个img元素。

如果你想限制父元素内的搜索,那么你可以

$("#parentElemId").find("img:first") 

如果你可以把这些图像元素类名,那么你可以做

$("img.classname:first") 
+1

限制使用第二个选项为什么不使用'#parentElemId img:first'或'#parentElemId> img:first'? – bendewey 2010-01-06 04:55:36

+0

好点bendeway。 $(“#parentid img:first”)更清洁。 – Ariel 2010-01-06 05:07:51

+0

@pulse提供的方法显示了一个有用的优化,如果您计划对父节点执行其他操作。例如,'var n = $(“#parentElemId”); ... n.find(“img:first”);'。 – 2010-01-06 05:12:17

1

同其他成员一样有提到你可以通过使用img:first获得第一张图片。以显示为缩略图的最简单的方法是:

$(document).append("<img src='" + $("img:first").attr("src") + "' alt='' class='thickbox' style='width: 50px; height: 50px;' />"); 

class='thickbox'的部分是为了thickbox插件

这是基于您的评论更具体的例子:

如果原始数据的外观是这样的:

<div id="thumbs"></div> 
<div id="article"> 
    <img src="..." alt="" /> 
    Some text.. 
</div> 

您可以使用这样的事情:

var images = ""; 

$("#article img:first").each(function() { 
    images += "<img src='" + $(this).attr('src') + "' width='45' class='thickbox' alt='Click to enlarge' /> "; 
}); 

$("#thumbs").append(images); 
+0

对不起,我的无知,但我不能从你的代码看到图像将被追加到? – Jackson 2010-01-06 06:04:50

+0

在示例中,图像将简单地追加到文档中,表示它将作为第一项出现。您可以轻松地通过用父元素的任何有效选择器替换文档 – Ariel 2010-01-06 16:04:19

+0

感谢Ariel。我将在一篇博客中使用它,并附上几篇文章介绍。每篇文章介绍将包含一个图像:

这里的内容
。作为jQuery的新手,我很难看到如何使用代码在页面上的每个介绍中查找图像,并将其附加到每个介绍的.thumbcontainer,以便每个介绍都有一个缩略图。在此先感谢您的帮助。 – Jackson 2010-01-07 05:32:47

相关问题