0

源代码

<div class="level_1 euItem generation_y _2012">
    <img border="0" src="img2.jpg" class="euImg" alt="Run">
    <a href="/sport/sport_2014/media_gallery/images/car.htm" class="lightview">Run</a>
</div>

<div class="level_1 euItem youth_forum">
    <img border="0" src="img3.jpg" class="euImg" alt="Run">
    <a href="/sport/sport_2014/media_gallery/images/aircraft.htm" class="lightview">Run</a>
</div>

我需要获取 div 元素的第三类并将其作为 A 元素的属性

结果代码:

<div class="level_1 euItem generation_y _2012">
    <img border="0" src="img2.jpg" class="euImg" alt="Run">
    <a href="/sport/sport_2014/media_gallery/images/car.htm" class="lightview" data-lightview-group="generation_y _2012">Run</a>
</div>

<div class="level_1 euItem youth_forum">
    <img border="0" src="img3.jpg" class="euImg">
    <a href="/sport/sport_2014/media_gallery/images/aircraft.htm" class="lightview" alt="Run" data-lightview-group="youth_forum">Run</a>
</div>

我现在在这一点上,但它不起作用。请注意,每个 div 都有一个我必须使用的不同类:

var lightviewGroup = $(this).attr('class').split(' ');
$('div.euBox div.level_1 h4 a.link-ico').attr('data-lightview-group',imgCaption[2]);
4

4 回答 4

0

要获得第三类:

var cls = $(this).attr('class').split(' ')[2]

将其分配给<a>元素:

$(this).find('a.lightview').attr('data-lightview-group',cls);
于 2013-09-27T15:29:06.487 回答
0

如果最后一类父 div 应作为 data-lightview-group 的值,则 OP 脚本应更新为

var lightviewGroup = $(this).attr('class').split(' '); $(div.euBox div.level_1 h4 a.link-ico).attr('data-lightview-group',lightviewGroup[lightviewGroup.length - 1]);

于 2013-09-27T15:33:10.543 回答
0

尝试:

//if you want to get all the classes as attribute value except for the first one
$('div.level_1').find('.lightview').attr('data-lightview-group', function () {
    return $(this).closest('.level_1')[0].className.split(" ").slice(1).join(" ");
});

演示

//If you want only the last class then:
$('div.level_1').find('.lightview').attr('data-lightview-group', function () {
    return $(this).closest('.level_1')[0].className.split(" ").pop();
});

结果是 :

 <div class="level_1 euItem generation_y_2012">
    <img border="0" src="img2.jpg" class="euImg" alt="Run"> <a href="/sport/sport_2014/media_gallery/images/car.htm" class="lightview" data-lightview-group="generation_y_2012">Run</a>

</div>
<div class="level_1 euItem youth_forum">
    <img border="0" src="img3.jpg" class="euImg" alt="Run"> <a href="/sport/sport_2014/media_gallery/images/aircraft.htm" class="lightview" data-lightview-group="youth_forum">Run</a>

</div>

演示

于 2013-09-27T15:33:19.247 回答
0

首先,您提供的代码将 div 的类拆分为一个名为的数组lightviewGroup,然后您使用另一个名为的数组imgCaption来尝试填充属性。所以一开始就错了。

正确的版本是这样的:

var lightviewGroup = $(this).attr('class').split(' ');
$(this).find('a').attr('data-lightview-group',lightviewGroup[2]);

这样您就可以使用正确的类值,并将其设置为<a>当前对象的所有子元素。(分区)

于 2013-09-27T15:34:45.593 回答