テキスト、画像、およびアンカーをすべて含む DIV のリストがあります。
Javascript/jQuery を使用すると、アンカーの href を取得し、そのリンクを使用して画像をアンカー タグでラップすることは可能ですか?
私はこれが奇妙な要求であることを知っています、私はフィドルを作りました...
複数のdivがあるため、同じIDを持つことはできません
テキスト、画像、およびアンカーをすべて含む DIV のリストがあります。
Javascript/jQuery を使用すると、アンカーの href を取得し、そのリンクを使用して画像をアンカー タグでラップすることは可能ですか?
私はこれが奇妙な要求であることを知っています、私はフィドルを作りました...
複数のdivがあるため、同じIDを持つことはできません
ここに方法があります
var src = $("#imgid").attr("src"); //take out the src
$("#imgid").wrap($('<a href="'+src+'" />'); //wrap around it with the anchor
あなたの使用法は、次のようなものにすることができます
$("img", $("#divid")).each(function() {
var src = $(this).attr("src"); //take out the src
$(this).wrap($('<a href="'+src+'" />')); //wrap around it with the anchor
});
これは、フィドルでこの実装を使用したデモです。
では、まとめましょう。
jQuery に翻訳:
$(".card-prod").each(function(){
var anchors = $(this).find("a");
anchors.eq(0).prop("href", anchors.eq(1).prop("href"));
});
jQuery の場合:
$('.card-prod').each(function () {
var that = $(this),
imgA = that.find('a img').parent(),
newHref = that.find('a').not(imgA).attr('href');
imgA.attr('href', newHref);
});
.div のようなクラスを div に追加し、他のクラスをアンカー リンクに追加する必要があります。
$(document).ready(function(){
$(".divs").each(function(){
$(this).find("a").hasClass("anchor").attr("href", $(this).find("a").hasClass("continue").attr('href'))
});
});
試す:
$('img').each(function(){
$(this).wrap('<a href="'+$(this).attr('src')+'"/>');
});
img
おそらくクラスを使用して、そのセレクターを絞り込むだけです。
私があなたが望むものを正しく手に入れたら、次のようなものでそれを行うことができます:
$('a').attr('href', function() {
return $(this).find('img').attr('src');
});
ここでわかるように。