загрузить страницу в соответствии с именами классов
-
16-09-2019 - |
Вопрос
У меня на странице такой код:
<div class="item item_wall id1"></div>
<div class="item item_wall id2"></div>
<div class="item item_wall id3"></div>
<div class="item item_wall id4"></div>
<div class="item item_wall id5"></div>
Мне нужно что-то в jquery, чтобы при нажатии на div с классом «item» он загружал другой div со страницы, имя файла страницы зависело от выбранного div.Предпочтительно я бы хотел, чтобы он загружался:
что-то.php?type=item_wall&id=id1
Для дальнейшего использования вот что у меня получилось:
<div id="itemstable" class="item_love">
<div class="id1"></div>
<div class="id2"></div>
<div class="id3"></div>
<div class="id4"></div>
<div class="id5"></div>
<div class="id6"></div>
</div>
jQuery:
<script>
$("#itemstable div").click(function(){
var url = "something.php?type=" + $(this).parent().attr("class") + "id=" + $(this).attr("class");
alert(url);
});
</script>
Решение
Повторяя ответ Спенсера Рупорта, вы можете упростить это, используя jQuery для использования пользовательских атрибутов, отличных от класса.
Например, ваш DIV может выглядеть так:
<div class="item" type="item_wall" id="1"></div>
Вы можете легко создать селектор и событие jQuery, как показано ниже:
$(".item").click(function() {
var url = "something.php?type=" + $(this).attr("type");
windows.location = url;
});
Конечно, не забывайте проверять достоверность и никогда не доверяйте пользовательскому вводу (ваш HTML может быть переписан злонамеренным пользователем).
Другие советы
Для действительного документа XHTML проще всего добавить невидимый дочерний DIV под основной DIV.Например.:
<div class="item">
<div class="variable type">item_wall</div>
<div class="variable id">1</div>
</div>
Вы можете найти «пользовательский атрибут», используя .find().Например.:
$(".item").click(function() {
var type = $(this).find(".type").val();
var url = "something.php?type=" + type;
windows.location = url;
});
Немного мнения:Следует избегать смешивания данных с пользовательским интерфейсом.