#javascript #jquery #html #templates #html5-template
#javascript #jquery #HTML #шаблоны #html5-шаблон
Вопрос:
Я также создаю веб-сайт для образовательных целей, но я получил некоторую ошибку, которую я не могу понять самостоятельно.
Я написал шаблон, подобный:
<div class="row" style="height: 75%;" align="center" id="room-list">
<template id="room-template" class="slide">
<div class="col-md-4" id="left-item">
<div class="panel panel-default panel-primary">
<div class="panel-heading">
<span id="room-type"></span>
</div>
<div class="panel-body">
<div id="thumbnail" class="thumbnail" style="width: 300px; height: 300px;"></div>
<div id="utility">
Utilities:
</div>
<div id="price">
Price:
<span id="sale" class="sale"><i class="fa fa-usd" aria-hidden="true"></i></span>
<span id="original" class="original"><i class="fa fa-usd" aria-hidden="true"></i></span>
</div>
</div>
<div class="panel-footer">
<button class="btn btn-default btn-primary" style="width: 100%;">Book now!</button>
</div>
</div>
</div>
<div class="col-md-4" id="center-item">
<div class="panel panel-default panel-primary">
<div class="panel-heading">
<span id="room-type"></span>
</div>
<div class="panel-body">
<div id="thumbnail" class="thumbnail" style="width: 300px; height: 300px;"></div>
<div id="utility">
Utilities:
</div>
<div id="price">
Price:
<span id="sale" class="sale"><i class="fa fa-usd" aria-hidden="true"></i></span>
<span id="original" class="original"><i class="fa fa-usd" aria-hidden="true"></i></span>
</div>
</div>
<div class="panel-footer">
<button class="btn btn-default btn-primary" style="width: 100%;">Book now!</button>
</div>
</div>
</div>
<div class="col-md-4" id="right-item">
<div class="panel panel-default panel-primary">
<div class="panel-heading">
<span id="room-type"></span>
</div>
<div class="panel-body">
<div>
<img id="thumbnail" class="thumbnail" style="width: 300px; height: 300px;">
</div>
<div id="utility">
Utilities:
</div>
<div id="price">
Price:
<span id="sale" class="sale"><i class="fa fa-usd" aria-hidden="true"></i></span>
<span id="original" class="original"><i class="fa fa-usd" aria-hidden="true"></i></span>
</div>
</div>
<div class="panel-footer">
<button class="btn btn-default btn-primary" style="width: 100%;">Book now!</button>
</div>
</div>
</div>
</template>
</div>
И я использую jquery, чтобы добавить этот шаблон к добавлению множества разделов с помощью template.
var roomList = document.querySelector('template# room-list').content;
for (var i = 0; i < roomEntities.length; i ) {
var room = roomEntities[i];
var price = priceEntities[i];
var type = room.type;
var thumbnail = room.thumbnail;
var sale = price.sale;
var original = price.original;
for (var i = 0; i < 3; i ) {
var slt = "#center-item";
if (i == 0) {
slt = "#left-item";
}
else
slt = "#right-item";
var tpl = document.getElementById('room-template');
tpl.querySelector(slt '.panel-default .panel-heading #room-type').innerText = type;
tpl.querySelector(slt '.panel-body #thumbnail').attr('src') = thumbnail;
tpl.querySelector(slt '.panel-body #sale').innerText = sale;
tpl.querySelector(slt '.panel-body #original').innerText = original;
roomList.appendChild(tpl.content.cloneNode(true));
}
}
Но при этом всегда возвращается ошибка tpl.querySelector(slt '.panel-default .panel-heading #room-type').innerText = type;
Cannot set property innerText of null
, это означает, что не удается найти элемент в шаблоне.
Любой совет или рекомендация. Пожалуйста, помогите. Большое спасибо
Комментарии:
1. требуется пустое пространство
tpl.querySelector(slt ' .panel-default.panel-heading#room-type').innerText
перед.panel
Ответ №1:
Измените все селекторы в своем коде
tpl.querySelector(slt '.panel-default .panel-heading #room-type').innerText
tpl.querySelector(slt ' .panel-default .panel-heading #room-type').innerText
Комментарии:
1. Насколько они отличаются? Пожалуйста, укажите пробел, а не.
2. Пробел, используемый для внутреннего элемента родительского элемента .. если вы используете без пробела в селекторе. требуется поиск того же элемента
3. Хорошо, понял. Позвольте мне попробовать ваше решение.