С помощью следующего кода при нажатии на гиперссылку он загружает элементы массива в div-контент бренда. Когда вы нажимаете гиперссылку Nike, например, она загружает только элемент 3 из массива, а элементы 1 и 2 отсутствуют?Отображает только один элемент из массива
<?php
$brand = array (
"nike" => array (
array('logo'=>'images/nike.png', 'description' =>'some nike text1'),
array('logo'=>'images/nike.png', 'description' =>'some nike text2'),
array('logo'=>'images/nike.png', 'description' =>'some nike text3')),
"puma" => array(
array('logo'=>'images/puma.png', 'description' =>'some puma text'),
array('logo'=>'images/puma.png', 'description' =>'some puma text'),
array('logo'=>'images/puma.png', 'description' =>'some puma text')),
"addidas" => array(
array('logo'=>'images/addidas.png', 'description'=>'some addidas text1'),
array('logo'=>'images/addidas.png', 'description'=>'some addidas text2'),
array('logo'=>'images/addidas.png', 'description'=>'some addidas text3')),
"Asics" => array(
array('logo'=>'images/Asics.png', 'description'=>'some Asics text'),
array('logo'=>'images/Asics.png', 'description'=>'some Asics text'),
array('logo'=>'images/Asics.png', 'description'=>'some Asics text')),
"Qicksilver" => array(
array('logo'=>'images/Qicksilver.png', 'description'=>'some Qicksilver text'),
array('logo'=>'images/Qicksilver.png', 'description'=>'some Qicksilver text'),
array('logo'=>'images/Qicksilver.png', 'description'=>'some Qicksilver text')),
);
?>
<style type="text/css">
a {
margin-left: 10px;
}
#brand-content {
margin-top: 50px;
border: solid 1px #000;
padding: 10px;
display: none;
width: 50%;
}
#brand-content img {
margin-right: 25px;
}
</style>
<script>var brand =<?php echo json_encode($brand) ?>;// json_encode($brand) is equivalent to the following: {"nike":[{"logo":"images\/nike.png","description":"some nike text"}, {"logo":"images\/nike.png","description":"some nike text"},{"logo":"images\/nike.png","description":"some nike text"}],"puma":[{"logo":"images\/puma.png","description":"some puma text"}, {"logo":"images\/puma.png","description":"some puma text"},{"logo":"images\/puma.png","description":"some puma text"}],"addidas":[{"logo":"images\/addidas.png","description":"some addidas text"},{"logo":"images\/addidas.png","description":"some addidas text"},{"logo":"images\/addidas.png","description":"some addidas text"}],"Asics":[{"logo":"images\/Asics.png","description":"some Asics text"},{"logo":"images\/Asics.png","description":"some Asics text"},{"logo":"images\/Asics.png","description":"some Asics text"}],"Qicksilver":[{"logo":"images\/Qicksilver.png","description":"some Qicksilver text"},{"logo":"images\/Qicksilver.png","description":"some Qicksilver text"}, {"logo":"images\/Qicksilver.png","description":"some Qicksilver text"}]}
function readyLinks() {
for (var n in brand) {
for (var i in brand[n]) {
var link = document.createElement("a");
link.href = brand[n][i].logo;
link.innerHTML = n;
link.setAttribute("data-description", brand[n][i].description);
link.onclick = function() {
document.getElementById("brand-content").innerHTML = "<img src=\"" + this.href + "\"/>" + this.getAttribute("data-description");
document.getElementById("brand-content").style.display = "block";
return false;
}
}
document.getElementById("brand-nav").appendChild(link);
}
}
window.onload = function() {
readyLinks();
}
</script>
<!-- body -->
<div id="brand-nav"></div>
<div id="brand-content"></div>
Фактический массив, который я буду использовать будет иметь следующий вид:
"Nike" => array(
array('id'=>'01','logo'=>'images/nike-logo.jpg', 'productTitle' => "Nike Air Max",'productImage' => "images/airmax.jpg",'productDescription' => "Nike Air Max are awesome ",'rrp' => "RRP £100.00",'salePrice' => "Now ONLY £80.00"),
array('id'=>'02','logo'=>'images/nike-logo.jpg', 'productTitle' => "Nike Plus Running Shoes",'productImage' => "images/plus.jpg",'productDescription' => "Nike plus are even more awesome ",'rrp' => "RRP £120.00",'salePrice' => "Now ONLY £90.00"),
Так что мне нужно добавить дополнительные GetAttributes для дополнительных полей в массиве для все, чтобы отобразить?
this.getAttribute("id");
this.getAttribute("productTitle");
this.getAttribute("productDescription");
Volterony
Привет. Не могли бы вы объяснить, что ваш настоящий вопрос здесь? Пожалуйста, объясните, что вы хотите сделать, что вы пробовали, результат, который вы получите, и результат, который вы хотите. Также см. Http://stackoverflow.com/help/how-to-ask – Relequestual
По сути, я хочу отобразить все элементы из массива Nike второго типа в div-бренд-контент. (Это фактический массив, с которым я буду работать). Малый массив - это тест. На данный момент втягивается только третий предмет? 1 и 2 отсутствуют? – Volterony
Я потерял ваши утверждения DOM append в функции readyLinks, как вы это делаете? –