2010-04-16 4 views
1

This answer предложил мне поместить мои данные в JS вместо текстового поля.«Лучший» способ получить данные относительно div?

Думая об этом, я мог бы иметь скрипты и делать что-то вроде myarray [i] = "data", где i - индекс моего цикла for. Однако, когда я нажимаю div, как узнать, что я? Я использовал var data = $(this).parent('.parent').find('.valuestr').eq(0).val();, что очень просто. Должен ли я использовать скрипт или я должен продолжать делать это с помощью текстовой области? если я должен использовать сценарий 1) Какой самый простой способ найти i и 2) Неужели это плохой порядок, чтобы иметь десятки или сотни <script> в моем html? или я могу пройти цикл дважды, но я до сих пор не знаю, как проще всего найти i. Мне нужно было бы хранить его где-нибудь или проходить через несколько тегов и считать их.

ответ

1

jQuery имеет функцию data() только для этого.

Вы хранить произвольные данные, относящиеся к некоторому элементу, как это:

$('#my_div').data('foo', 'bar'); 
$('#my_div').data('hello', 'world'); 

Затем извлечь его так:

alert($('#my_div').data('foo')); // alerts "bar". 
alert($('#my_div').data('hello')); // alerts "world". 
+0

Thats cool. Затем мне нужно сделать фиктивный div с идентификатором и использовать данные $ ('# that_id'). хмм. звучит хорошо, но до сих пор в этом другом вопросе я думаю, что должен использовать текстовую область – 2010-04-16 06:15:56

+0

Идентификатор - это просто пример. Вы можете привязать данные к любому элементу, независимо от того, имеет ли он идентификатор. Элемент, который вы используете с помощью '$ (this) .parent ('. Parent')' в вашем примере, можно использовать так же легко. –

+0

выглядит как мне нужен javascript на странице, чтобы установить данные для каждого элемента, но это не ужасно. принято – 2010-04-19 17:59:30

0

Поскольку каждый DOM_Element только объект, вы можете объявить переменную объект.

for(var i = 0; i < elements.length; i++) 
{ 
    elements[i].i = i; 
    elements[i].onclick = function(){ 
     alert(this.i); 
    } 
} 
+0

, то как мне найти i в элементах ... – 2010-04-16 06:14:05

+0

... что вы имеете в виду? элементы - это просто DOM_Element [] – Warty

+0

О, я думаю, что вижу. custon onclick для каждого цикла с другим i. hmmm ...... Я думаю, что сделаю это оригинальным способом с textarea и не буду использовать предложение хранить его в JS. Таким образом, у меня может быть кеш кода во внешнем js-файле, а не в моей логике приложения/html – 2010-04-17 02:33:03

2

Отвечая на вторую часть вашего вопроса:

2) Является ли это плохо pratice иметь десятки или сотни в моем HTML?

Это будет зависеть от того, с кем вы говорите, но в целом, да, я думаю, что это так. На самом деле есть толчок для html, полностью лишенный Javascript, за исключением загрузки файлов .js. Для получения дополнительной информации просмотрите ненавязчивый javascript.

http://en.wikipedia.org/wiki/Unobtrusive_JavaScript

+0

Полезно знать. В этом случае я использую его не как уровень поведения, а как данные. +1 – 2010-04-16 06:20:36

Смежные вопросы