загрузить страницу в соответствии с именами классов

StackOverflow https://stackoverflow.com/questions/1146260

  •  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;
});

Немного мнения:Следует избегать смешивания данных с пользовательским интерфейсом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top