#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
Я реализую форму поиска, для этого мне нужны динамические divs для отображения результатов поиска. Теперь я пытаюсь,
-
создайте элементы html.
-
для каждого результата клонируйте структуру и замените внутренний html соответствующих элементов моими результатами.
-
Добавьте результат к существующим результатам. но я не знаю, как заменить innerhtml результатами. Я создал следующий код в html,`
<div id="resultsDiv">
<div id="webResult">
<div id="heading"></div>
<p id="s_item"></p>
<h5 id="s_description"></h5>
<span id="s_offer"></span>
</div>
</div>
и для javascript я создал,
templete_element=document.getElementById('resultsDiv');
for(i=0;i<result_count;i ){
$("#webResult").clone().insertAfter("#webResult");
}
Для каждого выполнения цикла for мне нужно:
-
замените внутренний html идентификатора «заголовок» на
dataArray.root.data.partners[0].item_heading
-
замените внутренний html-код идентификатора ‘s_item’ на
dataArray.root.data.partners[0].item_name
-
замените внутренний html-код идентификатора ‘s_description’ на
dataArray.root.data.partners[0].item_description
-
замените внутренний html-код идентификатора ‘s_offer на’
dataArray.root.data.partners[0].item_offer
Пожалуйста, простите меня, если мой язык плохой. спасибо.
Комментарии:
1. Этот метод создает повторяющиеся идентификаторы
2. Почему вы используете чистый javascript selector (
document.getElementById
) и jquery selector одновременно?
Ответ №1:
Вам следует избегать создания элементов с повторяющимися идентификаторами на странице, это делает невозможным ссылаться на них, поскольку идентификатор должен быть уникальным. Вместо этого вы должны изменить свою разметку для работы с классами:
<div id="resultsDiv">
<div class="webResult">
<div class="heading"></div>
<p class="s_item"></p>
<h5 class="s_description"></h5>
<span class="s_offer"></span>
</div>
</div>
После этого вы можете работать с этими классами вместо этого:
for(i=0;i<result_count;i ){
var myResult = $(".webResult:first").clone().insertAfter(".webResult:last");
myResult.find('.heading').html( 'put dynamic data here' );
}
Я использовал первый и последний модификаторы, чтобы получить первый элемент в качестве «шаблона» и добавить его к последнему, созданному в цикле.