2011-04-10 55 views
0

後什麼IM的基本想法..jQuery的 - Copyingclasses從一個元素到另一個IF條件是正確的

在從「#箱一個」文件複製準備進班「#箱三」 如果「 #箱兩IMG」具有相同的映像名稱‘#箱一個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

呃......使用'if'語句? – SLaks 2011-04-10 13:21:08

回答

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); 
    } 

}); 

工作前充足的:http://jsfiddle.net/raPBy/

+0

這工作很好,但theres一件事..如果文件夾是不同的這不工作。 http://jsfiddle.net/xekBx/1/(我只是改變了其他圖片文件夾的名稱) 它基本上像大圖像和縮略圖圖像具有相同的名稱,但在不同的文件夾。 – Joonas 2011-04-10 13:53:14

+0

解釋你的意思是圖像的名字,因爲你的HTML例子沒有指定除了src以外的任何東西。 – Peeter 2011-04-10 13:54:15

+0

這些有不同的文件夾 – Joonas 2011-04-10 13:55:12

2

這會將所有類從框1添加到框3,並清除框1的類。如果你想移動特定的類,你可以使用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(); 
+0

這個答案的工作原理除了從查看HTML示例以外,圖像看起來都在不同的文件夾中。如果只有文件名需要相同,則需要獲得'.attr('src')',然後只獲取文件名。 – 2011-04-10 13:39:49

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 
    } 
}); 
+0

這似乎很好地工作,除了我選擇我的話很差,因爲我真的意味着複製班級,而不是轉移... – Joonas 2011-04-10 13:58:42

+0

沒想到..花了我一段時間才意識到你在那裏做了什麼..它的一切都很好。 – Joonas 2011-04-10 14:04:01

相關問題