2011-07-31 8 views
0

は、次のコードを考えてみましょう:jQueryの問題ラップ/アンラップ手順

$(".lcontainer a").click(function() { 
    var current = $(this); 
    var name = current.attr('href'); 
    document.getElementsByName('source')[0].value = name; 
    var fPicture = "css/imgs/Flash.png"; 
    //If image is wrapped in link unwrap it 
    var newLink = $('<a/>').attr('href', name); 
    newLink.find('#prev').unwrap(); 
    if (extension == "jpg" || extension == "png" || extension == "gif" || extension == "bmp") { 
     $(".mainCategory").html("Picture"); 
     document.getElementById('prev').src = name; 
    } 
    else if (extension == "swf") { 
     $(".mainCategory").html("Game"); 
     document.getElementById('prev').src = fPicture; 
     previewImage.wrap(newLink); 
    } 
    return false; 
}); 
}); 

ロジックは単純です:私たちは、SWFファイルを持っている場合、フラッシュ記号を入れて、リンクは、このファイルを指すと記号を包みます。問題:別のリンクをクリックすると、シンボルが展開されません。どんな助けでも大歓迎です。 newLink内部は何も持っていないため

newLink.find('#prev').unwrap(); 

は...何かを見つけることができません。したがって、この...

var newLink = $('<a/>').attr('href', name); 

答えて

1

あなたはとの新たなリンク要素を作成していますそれはまだ。

あなたはこのようなことをしたくないと確信していますか?

$('#prev').unwrap(); 
var newLink = $('<a/>').attr('href', name); 
+0

@George:あなたがしようとしていた編集は、オリジナルと同じ問題を抱えています。私はそれが作業上の修正であれば、コードのいくつかを除外しなければならないと思います。 – user113716

+0

はい、私にとってはこのコードは正しく動作します。私の考えはidをこのnewLink変数の属性として設定し、idを使ってリンクを呼び出すことでした – George