jQuery-Grab a<;部门>;ID并将其分发给其子代

jQuery-Grab a<;部门>;ID并将其分发给其子代,jquery,variables,attr,each,Jquery,Variables,Attr,Each,我一直试图获取一个DIV的#id,并用jQuery将它传递给它的每个孩子,但没有成功 <div class="gallery" id="gallery-1"> <a href="link_1">Link 1</a> <a href="link_2">Link 2</a> </div> <div class="gallery" id="gallery-2"> <a href="link

我一直试图获取一个DIV的#id,并用jQuery将它传递给它的每个孩子,但没有成功

<div class="gallery" id="gallery-1">
    <a href="link_1">Link 1</a>
    <a href="link_2">Link 2</a>
</div>
<div class="gallery" id="gallery-2">
    <a href="link_1">Link 1</a>
    <a href="link_2">Link 2</a>
</div>
…但那只会给我[目标,目标]。看起来它正在计算两个div.gallery,并试图将它们都分配给rel。
如何仅获取父id并将其应用于其子项?

正确的方法是:

$("div.gallery").each( function()
{
    var $this = $(this);
    var id = $this.attr('id'); // <-- Get the ID attribute

    $this.children("a").attr("rel", id);
});
$(“div.gallery”)。每个(函数()
{
var$this=$(this);
var id=$this.attr('id');//这应该有效(未测试):


获取子对象,添加rel属性,将内部html更改为img

$(".gallery").children().each(function(){
    $(this).attr("rel", $(this).parent().attr("id"));
    $(this).html("<img src='#'>");
});
$(“.gallery”).children().each(function()){
$(this.attr(“rel”),$(this.parent().attr(“id”);
$(this.html(“”);
});
产出:

<div class="gallery" id="gallery-1">
    <a ref="gallery-1" href="link_1"><img src="#"/></a>
    <a ref="gallery-1" href="link_2"><img src="#"/></a>
</div>
<div class="gallery" id="gallery-2">
    <a rel="gallery-2" href="link_3"><img src="#"/></a>
    <a rel="gallery-2" href="link_4"><img src="#"/></a>
</div>

使用以下代码

$(document).ready(function(){
    $(".gallery").each(function(){
        rel = $(this).attr("id");
        $(this).find("a").attr("rel",rel)
    });
});

听起来好像要将每个父项的id应用于其子项的rel属性?请尝试:

$('.gallery').each(function () {
    $(this).find('a').attr('rel', $(this).attr('id'));
});

以下是

您仍然在设置所有
a
的rel属性,而不仅仅是孩子。感谢您的注意。更新了答案。这将第一个库id应用于所有链接:(或者至少在我的测试中是这样的。编辑:你们都很快!我包含的工作示例完全符合您的要求。这很有效!您能解释一下原因吗?我明白了。使用此选项可选择div.gallery,并通过.attr获取其id,但我不清楚第二个参数是什么。
$
/
jQuery的第二个参数
函数是一个上下文。您也可以使用
$(this.find('a:has(img)'))
看起来我必须更努力地阅读书籍。谢谢。这也很有效,而且这本书对我来说更容易阅读…所以。查找,找到里面的内容。gallery正确吗?谢谢!我必须开始更多地处理这些。这也很有效,尽管在我目前的情况下,如果我不必将每个图像显式地放入javascript中会更容易。在完成我的问题。谢谢!有这么多正确的答案,真是太神奇了,我没有一个答案。谢谢。好的,这一个没有足够的绿色复选标记,所以在这一页上绊倒的未来N00B尝试一切。
<div class="gallery" id="gallery-1">
    <a ref="gallery-1" href="link_1"><img src="#"/></a>
    <a ref="gallery-1" href="link_2"><img src="#"/></a>
</div>
<div class="gallery" id="gallery-2">
    <a rel="gallery-2" href="link_3"><img src="#"/></a>
    <a rel="gallery-2" href="link_4"><img src="#"/></a>
</div>
$(document).ready(function(){
    $(".gallery").each(function(){
        rel = $(this).attr("id");
        $(this).find("a").attr("rel",rel)
    });
});
$('.gallery').each(function () {
    $(this).find('a').attr('rel', $(this).attr('id'));
});