Intereting Posts
Недействительные параметры Mailgun Как заставить пользователя отправить текст в форме и AJAX его ввести в db и показать на той же странице? PHP PDO sqlite: невозможно открыть базу данных Функция php mail (), приводящая к 404 файлам не найденной странице Facebook PHP SDK -> получение идентификатора пользователя по электронной почте больше не возможно? Сравнение строк php с 0 integer возвращает true? Загрузка файла с Symfony3 не работает WKHTMLTOPDF – Можно ли отображать динамические заголовки? Содержимое ведра S3 не попадает в список до последнего относительно onSignIn (googleUser) Ограничить страницы от пользователей, не являющихся администраторами (PHP и MySQL) Автоматизировать VALUE в зависимости от того, сколько входов содержит форму Использовать PHP для доступа к LinkedIn API без входа пользователя Ошибка при использовании веб-службы:: SoapClient (): операция SSL завершилась неудачей с кодом 1 Laravel 4 Красноречивый псевдоним столбца

jQuery генерирует уникальные идентификаторы

Вот что я имею:

<a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a> 

Это массив PHP, который содержит некоторые ссылки. Мне нужно добавить дополнительный хэш-параметр #nav-link в конец каждой ссылки.

Вот как я пытался это сделать:

 <a id="likeLink" href=""><?=$arItem["TEXT"]?></a> <script> $(document).ready(function () { $("#likeLink").attr("href", <?=$arItem["LINK"]?> + "#nav-link"); }); </script> 

Но этот код не работает, потому что jQuery не будет знать, с какими ссылками я связываюсь. Поэтому я предполагаю, что мне нужно создать уникальные ids , но не знаю, как это сделать.

Solutions Collecting From Web of "jQuery генерирует уникальные идентификаторы"

Для генерации случайных идентификаторов вы можете использовать этот.

 <script type="text/javascript"> function Generator() {}; Generator.prototype.rand = Math.floor(Math.random() * 26) + Date.now(); Generator.prototype.getId = function() { return this.rand++; }; var idGen =new Generator(); </script> </html> <body> <!-- Place this in the body of the page content --> <button onclick="console.log(idGen.getId())">click</button> </body> 

Мне не нужен вечный уникальный / случайный идентификатор, просто что-то уникальное для каждой страницы, и все эти решения казались мне излишними, поэтому я придумал это:

 var uniqId = (function(){ var i=0; return function() { return i++; } })(); 

Предполагая, что вы вызываете код в каком-то виде, вы можете просто заменить

 <a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a> 

с

 <a href="<?=$arItem["LINK"]?>#nav-link"><?=$arItem["TEXT"]?></a> 

Таким образом, в конце каждой ссылки добавляется «# nav-link». Нет javascript или jquery вообще: D

Я всегда использую следующий код для создания уникальных идентификаторов. Я нашел этот метод несколько лет назад в Stackoverflow:

  /** * Create a random Guid. * * @return {String} a random guid value. */ newGuid: function() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }).toUpperCase(); } 

И вы можете найти другие полезные помощники js в моей библиотеке: https://github.com/mazong1123/neatjs

Поскольку v1.9, jQueryUI имеет встроенный метод для создания уникальных идентификаторов, называемых uniqueId ().

Этот код будет устанавливать уникальный идентификатор для каждого элемента, принадлежащего myclass.

 $(".myclass").each(function () { $(this).uniqueId(); }); 

Обратите внимание, что, по крайней мере, в моем тестировании вы не можете назначить новый идентификатор, если элемент уже имеет его.

Таким образом, этот div получит уникальный идентификатор с вышеуказанным кодом Javascript

 <div class="myclass"/> 

Но это не

 <div class="myclass" id="myId"/> 

Дополнительную информацию см. На странице https://api.jqueryui.com/uniqueId/.

Я знаю, что это уже год, однако ОП заявила, что не знает, как применять идентификаторы. Это можно легко выполнить с использованием прототипа rand by beri выше, как используется здесь.

 /// insure ALL myClass elements have a unique ID. if(!$('.myClass').attr("id")){ $('.myClass').attr("id",idGen.getId()); console.log($('.myClass').attr("id")); } 

или используя гораздо более широкую кисть:

 /// insure ALL anchor tags have a unique ID. if(!$('a').attr("id")){ $('a').attr("id",idGen.getId()); } 

Мы можем создать уникальный идентификатор для элементов using uniqueId () в Underscore:

уникальный идентификатор

  _.uniqueId([prefix]) 

Создайте глобально уникальный идентификатор для клиентских моделей или элементов DOM, которым он нужен. Если префикс передан, к нему будет добавлен идентификатор.

 _.uniqueId('contact_'); => 'contact_104'