2017-08-25 76 views
1

我有一個名爲「works」的數組,其中包含7個圖像。 他們應該顯示在這樣定義一個網格:如何使用JS/jQuery在div中選擇圖像

<div class="container"> 
    <div class="row" id="g-work"> 
    </div><!--/row --> 
</div><!--/container --> 

現在JS我填充/這些圖片更換「作品」,然後我要關閉邊界紅色。但是我不太瞭解如何正確選擇它們。這應該是正確的代碼,但它似乎沒有工作。這是什麼$("#g-work img)在做什麼? #g-work中沒有圖像標籤。這是什麼意思?爲什麼不能只寫var images=works?如果我嘗試下面的代碼,我的開發人員工具甚至會告訴我圖像沒有定義。這裏有什麼問題?

for(var i = 0; i < works.length; ++i) { 
    $("#g-work").append("\ 
    <div class='col-sm-6 col-md-3'>\ 
     <img class='img-responsive' src='" + works[i] + "'>\ 
    </div>\ 
    "); 

    var images = $("#g-work img"); 
    $(images[i]).css("border", "2px red"); 
}; 
+2

添加您'works'陣列到你的例子 – j08691

+1

'$(「#G-工作IMG)'選擇能與'克工作的ID的元素的後代的所有圖像'。你以前的代碼似乎會將'works'數組中的圖像附加到該div,每個div都包含在另一個div中。 – j08691

+0

這是work.js的內容: var works = [ 「img/pf1 .jpg「, 」img/pf5.png「, 」img/pf6.jpg「, 」img/pf7.png「, 「img/pf2.jpg」, 「img/pf3.jpg」, 「img/pf4.jpg」]; 我可以跟着你,但是當我輸入「作品」到控制檯,如果返回這個區域,而圖像似乎沒有定義,但爲什麼? –

回答

1

works=["http://www.cutestpaw.com/wp-content/uploads/2016/02/s-That-look.jpg","http://www.cutestpaw.com/wp-content/uploads/2016/02/s-Yoshi-The-Seal-Kitteh.jpg"] 
 
    
 
$.each(works,function(key,value) 
 
{ 
 
    let DIV=$("<div/>",{class:"col-sm-6 col-md-3"}); 
 
    let Image=$("<img/>",{class:"img-responsive",src:value,style:"border:solid 2px red;margin-bottom:5px"}); 
 
    $(DIV.append(Image)).appendTo("#g-work"); 
 
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"> 
 
    <div class="row" id="g-work"> 
 
    </div><!--/row --> 
 
</div><!--/container -->

+0

提示:不是'$(「#g-work」)。append(DIV.append(Image));'你可以使用屬性(就像你已經做過的那樣),例如:'appendTo:「#g-work 「'等等。甚至更好,用你的DIV對象填充一個數組,並且在循環之後只添加一次DOM(性能方面)例如:https://jsfiddle.net/rxz4yohf/ –

+0

@ RokoC.Buljan -Thank你這麼多。真的你的描述是有幫助的 –

+0

好的,這可能會工作,但練習的重點是使用基本的循環和條件,我會添加一些moe代碼,以使結果更清晰。 –

0

問題的好喜歡的來源,我相信,但我不明白爲什麼它的一個問題。如果選擇「2px固體鮭魚」作爲邊框顏色,它可以工作,但如果我採用「2px紅色」或「2px ffffff」,則不會。

var works=["http://www.cutestpaw.com/wp-content/uploads/2016/02/s-That-look.jpg","http://www.cutestpaw.com/wp-content/uploads/2016/02/s-Yoshi-The-Seal-Kitteh.jpg"] 
 

 

 

 
for(var i = 0; i < works.length; ++i) { 
 
    $("#g-work").append("\ 
 
    <div class='col-sm-6 col-md-3'>\ 
 
     <img class='img-responsive' src='" + works[i] + "'>\ 
 
    </div>\ 
 
    "); 
 
    var images = $("#g-work img"); 
 
    
 
    
 
$(images[i]).css("border", "2px solid salmon"); 
 
//$(images[i]).css("border", "2px red"); 
 

 
};
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div class="container"> 
 
    <div class="row" id="g-work"> 
 
    </div><!--/row --> 
 
</div><!--/container -->

+0

您必須指定圖片中的樣式類型 –

+0

你是什麼意思? 「固體鮭魚」是既定風格或其他東西的一部分,但「紅色」不是? –

相關問題