Javascript 使用多个div时如何正确使用JQuery.find()

Javascript 使用多个div时如何正确使用JQuery.find(),javascript,jquery,html,Javascript,Jquery,Html,我有一个HTML页面,用户可以在其中创建新闻项。每个新闻项显示在一个新的div中,其中包含多个div,用于将内容划分为多个列,隐藏某些内容等。以下代码是1个新闻项的精简版本: <div class="news-item clearfix" id="c-b504b780-06a8-49bc-ba04-84d1fbba1a94"> <h2>This is a title</h2> <div class="news-image div-right">

我有一个HTML页面,用户可以在其中创建新闻项。每个新闻项显示在一个新的div中,其中包含多个div,用于将内容划分为多个列,隐藏某些内容等。以下代码是1个新闻项的精简版本:

<div class="news-item clearfix" id="c-b504b780-06a8-49bc-ba04-84d1fbba1a94">

<h2>This is a title</h2>

<div class="news-image div-right">
    <a class="img-gallery" href="Images/Dynamic/700x700/NewsItem/44951/example.png" rel="lightbox-This is a title"><img class="img-responsive clear" src="Images/Dynamic/200x200c/NewsItem/44951/example.png" /></a><br />
</div>

<div class="preview one-image">
    <p>Text here</p>    
</div>

<div class="full div-hide">
    <p>Text here</p> <img src="Images/Dynamic/full/NewsItem/44951/example.png" class="img-responsive" />
</div>

这是一个标题

此处文本

此处文本

如您所见,每个新闻项都附带一个生成的代码,用于标识唯一的新闻项,该代码也用于my javascript:

<script type="text/javascript">
(function () {

    var newsdiv = $('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94');
    $('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94 > .full').find('img').wrap(function () { return "<a href='" + $(this).attr('src') + "'></a>"; });

})();
</script>

(功能(){
var newsdiv=$(“#c-b504b780-06a8-49bc-ba04-84d1fbba1a94”);
$('c-b504b780-06a8-49bc-ba04-84d1fbba1a94>.full')。查找('img')。换行(函数(){return”“;});
})();
这个脚本应该在我的full div hide类中找到的图像周围放置一个锚定标记,但是这不能正常工作。我假设我的jquery选择器没有选择正确的div,但我不知道它应该是什么。您知道如何在class=“full”div中的图像周围缠绕锚定标记吗?

试试以下方法:

$('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94 > .full img').each(function() {
   $(this).wrap(function () { return "<a href='" + $(this).attr('src') + "'></a>"; });
});
$('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94>.full img')。每个(函数(){
$(this.wrap(函数(){return”“;});
});

文档准备功能有两个问题:

1) 您尚未在ready函数前面添加jquery选择器(
$

  $(function () {
/*^^missing selector here*/ 

   var newsdiv = $('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94');
   $('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94 > .full').find('img').wrap(function () { return "<a href='" + $(this).attr('src') + "'></a>"; });

});
 /*^^ () not required here*/ 
2) 您不需要调用documentready函数

  $(function () {
/*^^missing selector here*/ 

   var newsdiv = $('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94');
   $('#c-b504b780-06a8-49bc-ba04-84d1fbba1a94 > .full').find('img').wrap(function () { return "<a href='" + $(this).attr('src') + "'></a>"; });

});
 /*^^ () not required here*/ 
$(函数(){
/*^^此处缺少选择器*/
var newsdiv=$(“#c-b504b780-06a8-49bc-ba04-84d1fbba1a94”);
$('c-b504b780-06a8-49bc-ba04-84d1fbba1a94>.full')。查找('img')。换行(函数(){return”“;});
});
/*^^()此处不需要*/
并使其适用于所有部门:

$('.news-item .full img').each(function(){
  $(this).wrap("<a href='" + $(this).attr('src') + "'></a>");
});
$('.news item.full img')。每个(函数(){
$(this.wrap(“”);
});

我尝试实现这一点,但是它给了我与示例相同的效果,图像没有被包装在锚定标记中。它成功了!非常感谢,我们已经为此奋斗了两个多小时,哈哈。很高兴这对凯文有帮助。:)在这种情况下,您应该检查控制台是否有错误。lol@milindantwar不错!我没有看到doc ready上的错误:meYea的D+1,我从来没有真正理解过如何使用控制台,今天我将查找它来学习如何使用控制台进行工作和调试,因为它在这些情况下似乎有很大帮助:-)发生:)。我们关注功能代码中的问题。。有些时候,我们知道基本语法是错误的。你把iLife和文档就绪处理程序syntx混淆了
$(fn)