2016-11-11 5 views
0

私はWooCommerceのレイアウトを変更しようとしていますが、その作業を行うことができないため、Javascriptを使用してdivを作成して追加することにしました既存の部門に私は、特定のクラスを持つすべてのdivを通過するいくつかの行を持っていますが、それはinnerHTMLを変更するときにのみ動作します。しかし、私がappendChildを使用すると、最後のdivにのみ追加されます。誰でもそれが何であるか考えている?これは私が使用するコードです。 "product-type-simple"クラスは既に存在するdivです。同じクラスのすべてのdivに追加する

var product_item_wrapper = document.createElement("div"); 
    product_item_wrapper.style.width = "100px"; 
    product_item_wrapper.style.height = "100px"; 
    product_item_wrapper.style.background = "red"; 
    product_item_wrapper.style.color = "white"; 
    product_item_wrapper.innerHTML = "Hello"; 
    product_item_wrapper.className = "product"; 

var divjes = document.getElementsByClassName("product-type-simple"); 
    for(var i = 0; i < divjes.length; i++){ 
    divjes[i].appendChild(product_item_wrapper); 
} 
+0

何をしようとしていましたか? javascriptでレイアウトを変更するのは理想的なアプローチのようには見えないからです。 – helgatheviking

+0

@helgatheviking私はWooCommerceでレイアウトを変更する方法を見つけることができません。だから私はこれが唯一の方法だと思った。理想から遠いですが、それは何かです。 – Casper

+0

どのページのレイアウトを変更しますか?レイアウトを何から何に変更するのですか?私は、あなたが試みていることと試したことについて細かい点を挙げて*の質問をすることをお勧めします。私はよりよいアプローチを見つけることができると私たちは95%確信しています。 – helgatheviking

答えて

1

1つの要素を作成しています。次に、それを複数の要素の子として追加します。あなたが行うたびに、それを元の場所から削除し、新しい要素に配置します。

複数の要素が必要な場合は、複数の要素を作成する必要があります。

のループのように、コードの最初の7行を移動します。

0

1つの要素は1つのdivにのみ追加できます。追加する新しい要素を返す関数を作成することを検討してください。

function createWrapper() 
{ 
    var product_item_wrapper = document.createElement("div"); 
    product_item_wrapper.style.width = "100px"; 
    product_item_wrapper.style.height = "100px"; 
    product_item_wrapper.style.background = "red"; 
    product_item_wrapper.style.color = "white"; 
    product_item_wrapper.innerHTML = "Hello"; 
    product_item_wrapper.className = "product"; 
    return product_item_wrapper; 
} 

var divjes = {}; 
divjes = document.getElementsByClassName("product-type-simple"); 
for (var i = 0; i < divjes.length; i++) 
{ 
    divjes[i].appendChild(createWrapper()); 
} 
関連する問題