繁体   English   中英

将属性添加到父元素

[英]Add attribute to a parent element

我有一个JavaScript变量(例如:myElement),该变量包含一个类名为myClass的div,如下所示。

<div>
    <div class="myClass">
        <h1>My Div</h1>
        <div id="1">Div one Content</div>
        <h2>Headline two</h2>
        <div id="2">Div two Content </div>
    </div>
    <div class="myClass">
        <h1>My Div</h1>
        <div id="1">Div one Content</div>
        <h2>Headline two</h2>
        <div id="2">Div two Content </div>
    </div>
</div>

我想通过jascsript或jQuery向类为“ myClass”的div中添加一个属性(例如:data-index),使其看起来像这样:

<div>
    <div class="myClass" data-index="index1">
        <h1>My Div</h1>
        <div id="1">Div one Content</div>
        <h2>Headline two</h2>
        <div id="2">Div two Content </div>
    </div>

    <div class="myClass" data-index="index2">
        <h1>My Div</h1>
        <div id="1">Div one Content</div>
        <h2>Headline two</h2>
        <div id="2">Div two Content </div>
    </div>
</div>

你怎么能做到这一点?

请注意:我在名为myElement的JavaScript变量和以下代码中包含此div

myElement.attr('data-index','index')

不起作用。

更新:

我可以尝试像首先将存储在变量myElement中的div附加到DOM,然后添加属性:

$('div.myClass').attr('data-index','index');

但是问题出在DOM中,我的类myClass就像100的div。

尝试这个:

var newAttr = document.createAttribute("data-index");
newAttr.value = "[What you want the index to be]";

// Will set data-index for first .myClass in newElement
newElement.getElementsByClassName("myClass")[0].setAttributeNode(newAttr);

// Will set data-index for every .myClass in newElement
newElement.getElementsByClassName("myClass").map(function(node) {
    node.setAttributeNode(newAttr)
});

好吧,更好的方法是在创建HTML时创建属性。

但是您可以使用jquery迭代功能(Jquery.each)来做您想做的事情: http ://api.jquery.com/jquery.each/

var myElements = $('div.myClass'),
    i = 0;

$.each( myElements , function( i ) {
    $(this).attr('data-index','index'+(i+1));
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM