1

クラス cover_container と img を含む div がありました。img の高さを取得して親 div に適用するために使用されるコード。これが私がしたことです。

$('.cover_container').height($(".cover_container img").height());

簡単なもの。しかし、今では 1 つのページに複数の cover_containers があり、苦労し始めました。これが私がしたことです:

for($a = 0; $a < $('.cover_container').length; $a++) {
  $currentcovercontainer = $('.cover_container')[$a];
  $currentcovercontainer.height($currentcovercontainer.children('img')[0].height());
}

ただし、これにより次のエラーが発生します。

[21:33:57.440] TypeError: $currentcovercontainer.children is not a function

jQuery($currentcovercontainer).find('img')[0].height() または $currentcovercontainer.height($('> img').height() のようなアイデアも試しましたが、成功しませんでした。

私が間違っていることについてのアイデアはありますか?

よろしくお願いします!

4

3 に答える 3

2

これをVanilla JSで記述します。必要に応じて、そのままにしておくか、jQuery に変換できます。

var qsa = document.querySelectorAll(".cover_container"),
    l = qsa.length, i;
// note: querySelectorAll is more widely supported than getElementsByClassName
for( i=0; i<l; i++) {
    qsa[i].style.height = qsa[i].querySelector("img").height+"px";
}

HTML が のように規則的である場合は、よりシンプルにすること<div class="cover_container"><img src="..." /></div>ができます。qsa[i].children[0].height

于 2013-06-02T19:39:16.237 に答える
2

.eachfunctionを使用して、関数を 1 つずつ実行できます

$('.cover_container').each(function() {
    var $this = $(this);
    $this.height($this.find("img").height());
});

jsFiddle でこの例を参照してください

于 2013-06-02T19:39:24.127 に答える