2017-10-18 4 views
-1

私はclass="block"のdivs(parents)をいくつか持っています。このdivの中には画像のsrcを変更するためのリンクボタンがあります。私の問題は、私はclass="block"で10個以上のブロックがあり、変更はすべてのクラスではなく親にのみ適用する必要があるということです。親divを見つけて親の中の子供の属性を変更するにはどうすればいいですか?

同じHTMLブロックの3倍の例です。私はUrlを変更する必要がありますが、すべてのブロックではなく、私はそれぞれのブロックに異なるIDやクラスを与えたくありません。 changeImageで

<div class="block> 
    <div> 
    <img src="someURL" class="image" alt=""/> 
    </div> 

    <div class="buttonlink"> 
    <a class="btn" id="change" href="#" onClick="changeImage(); return false">change</a> 
    </div> 

</div> 


<div class="block> 
    <div> 
    <img src="someURL" class="image" alt=""/> 
    </div> 

    <div class="buttonlink"> 
    <a class="btn" id="change" href="#" onClick="changeImage(); return false">change</a> 
    </div> 

</div> 


<div class="block> 
    <div> 
    <img src="someURL" class="image" alt=""/> 
    </div> 

    <div class="buttonlink"> 
    <a class="btn" id="change" href="#" onClick="changeImage(); return false">change</a> 
    </div> 

</div> 

Javascriptを/ jQueryの

function changeImage() { 

     $('.image').attr("src","../img/checkgrau.png"); 

} 
+1

いない.closest作業を必要に応じて

$(document).ready(function(){ $(".btn").click(function(){ $(this).parent(".buttonlink").parent(".block").children("div").children("img").attr("src","YOUR_IMAGE_URL"); }); }); 

はこれをチェックしてください機能は使用されない問題のためのjQueryコードの下に使用することができますか? – user5014677

答えて

1

onclickを削除し、 jquery、tを使用しているのでRYこの

$(".block .buttonlink .btn").click(function(e){ 
    e.preventDefault(); //to prevent default action on anchor click 
    $(this).closest(".block").find("img").attr("src", "../img/checkgrau.png"); 
}); 
1

() "この" のようなパス:機能に

onClick="changeImage(this); return false" 

その後の操作を行います。

function changeImage(element) { 
    $(element).closest('.block').find('.image').attr("src","../img/checkgrau.png"); 

} 
0

は、あなたがより

関連する問題