在Jquery中检索复杂的嵌套值

时间:2013-11-20 21:34:48

标签: jquery arrays input jquery-selectors nested

我有一个可以动态生成包含图像和六个输入的li元素的表单。每个生成的行采用以下形式:

<li>
    <div id="ShowcaseEntry" class="IndexEntry">
        <div class="IndexImage">
            <img src="/static/graphics/no-image.png" alt="/static/graphics/no-image.png">
        </div>
        <div class="IndexCaption">
            <label>Caption</label><br />
            En <input type="text" class="ShowcaseCaption_en" value="">
            Es <input type="text" class="ShowcaseCaption_es" value="">
            <br />
            <label>Link</label><br />
            En <input type="text" class="ShowcaseLink_en" value="">
            Es <input type="text" class="ShowcaseLink_es" value="">
            <br/>
            <a href="" class="removeimg">Remove</a></li>
        </div>
    </div>
</li>

无序列表具有ID ShowcaseImages。

以前图像不属于它自己的分区,当提交表单时,有一个JQuery函数收集了所有图像源名称:

var galleryimagesinput = [];
$("#ShowcaseImages li img").each(function() { galleryimagesinput.push($(this).attr('src')) });

然后我可以通过表单中的单个输入值发送数组,以便在另一端进行反汇编。

但是,现在图像位于div内部,src未被收集。我如何收集src以及如何收集每个标题中的每个标题和链接文本的值,将它们放在自己的数组中(一个用于图像,一个用于标题,一个用于链接文本)

我知道这可能只是一个链接选择器的问题,但我完全迷失了它。从文本框直接发送到表单的实际输入值并不重要,因为我打算将Jquery收集起来放入其他隐藏的输入中。

2 个答案:

答案 0 :(得分:0)

这应该有效:

$("#ShowcaseImages li").each(function() { 
    galleryimagesinput.push($(this).find('img').attr('src'));
});

答案 1 :(得分:0)

这应该为#ShowcaseImages ul

中的每个图像运行该函数
var galleryimagesinput = [];
$("#ShowcaseImages img").each(function() { 
  galleryimagesinput.push($(this).attr('src')) 
});

我刚从原来的功能中删除了“li”。