Получить строку с помощью jQuery - PullRequest
3 голосов
/ 15 ноября 2010

Мне пришлось извлечь 2-й параметр (массив) из атрибута onclick на изображении, но jQuery просто вернул функцию onclick, а не ее строковое значение, как ожидалось. Поэтому мне пришлось использовать нативный метод.
Быстрый поиск говорит, что может работать с некоторыми браузерами, такими как FF, но не с IE. Я использую Chrome.

<img src="path/pic.png" onclick="funcName(123456,[12,34,56,78,890]);" />

Я думал, что это будет работать, но это не :

var div = $('div_id');
var onclick_string = $(div).find('img').eq(0).attr('onclick');
var onclick_part = $(onclick_string).match(/funcName\([0-9]+,(\[.*\])/)[1]; // for some reason \d doesnt work (digit)

Это работает

var div = $('div_id');
var onclick_string = $(div).find('img')[0].getAttributeNode('onclick').value;
var onclick_part = $(onclick_string).match(/funcName\([0-9]+,(\[.*\])/)[1]; // for some reason \d doesnt work (digit)

Есть ли другой способ получить второй параметр?

Ответы [ 2 ]

1 голос
/ 15 ноября 2010

Почему бы не сохранить его в свойстве data?

<img src="path/pic.png" onclick="funcName(123456);" data-mydata='12,34,56,78,890' />

var div_data = $('div_id').data('mydata').split(',');
0 голосов
/ 08 ноября 2011

UPDATE

Я использовал следующий код для циклического перебора коллекции тегов span и вывода их строк onclick. это хакерство, но это работает (Firefox 7, JQuery 1.5.1). Вы даже можете переопределить строковое значение.

$("span").each(function(index)
{
  alert( $(this)[0].attributes.onclick.nodeValue );
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...