簡體   English   中英

我怎么寫這個javascript append(); 更好?

[英]How can i write this javascript append(); better?

我已經學習javascript幾周了,目前我的頭腦還算不錯,但是我陷入了“最佳實踐”方面。

例如,此append(); 功能。 我該如何寫得更好?

$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[0][0]+','+cp[0][1]+','+cp[0][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[1][0]+','+cp[1][1]+','+cp[1][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[2][0]+','+cp[2][1]+','+cp[2][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[3][0]+','+cp[3][1]+','+cp[3][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[4][0]+','+cp[4][1]+','+cp[4][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[5][0]+','+cp[5][1]+','+cp[5][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[6][0]+','+cp[6][1]+','+cp[6][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[7][0]+','+cp[7][1]+','+cp[7][2]+');"></div>');
$("#swatches").append('<div class="swatch" style="background-color:rgb('+cp[8][0]+','+cp[8][1]+','+cp[8][2]+');"></div>');

我知道這是可行的,但我也知道必須有其他更好的方式來編寫此代碼。 我只是不知道那是什么:)

任何幫助/解釋將不勝感激!

提前致謝

您可以使用for循環:

var swatches = $("#swatches");
for(var i = 0; i <= 8; i++) { 
    swatches.append('<div class="swatch" style="background-color:rgb('+cp[i][0]+','+cp[i][1]+','+cp[i][2]+');"></div>');
}

一種簡單的方法是迭代html並將其附加到元素。

var html = '';
 for(var i=0;i< 9; i++) {
    html += '<div class="swatch" style="background-color:rgb(' + cp[i][0] + ',' + cp[i][1] + ',' + cp[i][2] + ');"></div>'
 }

$("#swatches").append(html);

首先,您可以將$('#swatches')分配給變量,這樣jQuery不必每次都解析您的string 其次,可以使用for循環來減少代碼長度:

var swatches = $('#swatches');

for(var i = 0; i < 9; i++) {
    swatches.append('<div class="swatch" style="background-color:rgb('+cp[i][0]+','+cp[i][1]+','+cp[i][2]+');"></div>');
}

這是我的方法:

function getColorString(rgb) {
    return 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')';
}

for (var i = 0; i < cp.length; i++) {
    $('<div>', {
        class: 'swatch',
        css: {
            backgroundColor: getColorString(cp[i])
        }
    }).appendTo('#swatches');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM