后遗症的基本思路。
将文档就绪复制类从“#box-one”转换为“#box-three”如果“#box-two img”具有与“#box-one img”相同的图像名称
如果可能的话......有可能将特定类别排除在转移
之外HTML:
<span id="box-one" class="first second third">
<img src="imagefolder/image1.jpg" alt />
</span>
<span id="box-two">
<img src="imagefolder2/image1.jpg" alt />
</span>
<span id="box-three"></span>
请记住“#box-one”和“#box-two”中的图像会发生变化,但总是相同的。
就js而言,我不知道如何做到这一点..怎么可能这样做?
答案 0 :(得分:2)
这会将第一个框中的所有类添加到第三个框,并清除第一个框的类。如果要移动特定的类,可以使用jQuery方法$.addClass
和$.removeClass
。
$(document).ready(function() {
var box1 = $('#box-one'),
box2 = $('#box-two'),
box3 = $('#box-three'),
className = box1.attr('class');
if(box1.find('img').attr('src') === box2.find('img').attr('src')) {
box3.addClass(className);
box1.attr('class', '');
}
});
修改强>
您可以使用以下方式比较文件名段:
var src1 = $('#box-one').attr('src').split('/').pop(),
src2 = $('#box-two').attr('src').split('/').pop();
答案 1 :(得分:2)
$(document).ready(function(){
var classesToIgnore = ["second"];
if($("#box-one > img").attr("src").split('/').pop() == $("#box-two > img").attr("src").split('/').pop()) {
//Get all classes into an array
var classes = $("#box-one").attr("class").split(" ");
//Grep out the classes you dont want and join it into a string seperated by space
classes = $.grep(classes, function(class, index){
return ($.inArray(class, classesToIgnore));
}).join(" ");
//Overwrite #box-three's classes. If you want to append them, loop over the array and use $("#box-three").addClass("className");
$("#box-three").attr("class", classes);
}
});
答案 2 :(得分:0)
试试这个:
$(document).ready(function(){
if($('#box-two img').attr('alt') == $('#box-one img').attr('alt')){//can use attr('src')
$('#box-three').addClass($('#box-one').attr('class'));
$('#box-one').removeClass();//if u want to remove class from #box-one
}
});