#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Я новичок в jquery, и это мой первый вопрос.Простите, если это тривиально. У меня существует следующая структура страницы html-
<div class="button-footer" data-role="footer"....>
<div class="class1" data-role="navbar">
<ul>
<li>//these are buttons button 1
<li>//button 2
</ul>
</div>
</div>
Теперь мне нужно сделать следующее-
Мне нужно иметь другой ul на основе некоторого условия, т.е. Если условие истинно, замените весь статический ul другим.Как мне поступить? Где должен быть размещен статический список ul для замены — в том же файле html или js?Я в замешательстве, пожалуйста, взгляните. Любая помощь очень ценится.
Это то, что я пробовал до сих пор-
<div class="button-footer" data-role="footer"....>
<div class="class1" data-role="navbar">
<ul>
<li>// button 1
<li>//button 2
</ul>
</div>
<div class="class2" data-role="navbar">
<ul>
<li>// button 3
<li>//button 4
</ul>
</div>
</div>
затем на странице .js я сделал это-
if(condition)
$( ".class1" ).remove();
else
$( ".class2" ).remove();
по моему мнению, дело в том, что, поскольку оба ul являются статическими, почему бы не поместить их в сам html и выполнить удаление?имеет ли это смысл?
Комментарии:
1. Вы уже предприняли какие-либо попытки и готовы предоставить нам некоторые соответствующие фрагменты кода?
2. создайте проблему с проблемой.
3. вы можете создать два ul с помощью hide и show class . в js измените добавление или удаление класса в зависимости от условия. или второе решение — изменить html-содержимое li на основе условия. Пожалуйста, предоставьте какой-нибудь jsfiddle или ваши усилия в коде, чтобы помочь.
Ответ №1:
Использовать replaceWith
в jquery
Метод .replaceWith() удаляет содержимое из DOM и вставляет новое содержимое на его место одним вызовом.
var cond = "3";
if (cond == "2") {
$(".customul").replaceWith("<ul><li>hello </li> </ul>");
} else if (cond == "3") {
$(".customul").replaceWith("<ul><li>hello user </li> </ul>");
} else
{
$(".customul").replaceWith("<ul><li>hi </li> </ul>");
}
<div class="button-footer" data-role="footer">
<div class="class1" data-role="navbar">this is data-role div
<div class="customul">
<ul>
<li>hi</li>
</ul>
</div>
</div>
</div>
Комментарии:
1. Это может быть не то, что задумано, поскольку $( «.class1″ ).replaceWith(‘..’) заменит <div class=»class1″ data-role=»navbar»> на новый <ul>
2. @vasa Чтобы РЕШИТЬ ЭТУ проблему, мы можем использовать ul в другом div.проверьте обновленный ответ
3. Этого нет в qn. Кроме того, новый <div> не служит здесь никакой цели, кроме как быть замененным позже.
4. @vasa . Есть так много способов, чувак. вы можете написать этот класс class=»customul» в теге ul . если вы не хотите добавлять новый div.
Ответ №2:
Если вы хотите заменить HTML на основе какого-либо условия, поместите его в JS.
if(condition) {
var new_ul_html = '<ul>.... </ul>'
$('.button-footer .class1').html(new_ul_html);
}
Ответ №3:
$(document).ready(function () {
var x;
alert("");
for (x = 0; x < 5; x ) {
if (x % 2 === 0) {
$(".class1").append("<ul><li>Even</li><li>" x "</li></ul>");
} else {
$(".class1").append("<ul><li>Odd</li><li>" x "</li></ul>");
}
}
});
Попробуйте таким образом, может быть, это будет решением для вашего требования.
проверьте код здесь: http://jsfiddle.net/hqaUE/2 /
Комментарии:
1. Если вы хотите удалить существующий ul, вы можете указать $(«.class1»).empty(); в начале. Поэтому перед добавлением он удалит ul из вашего div.