Теперь, когда у меня есть массив элементов. Я хочу превратить их в массив строк и проанализировать информацию после onclick. Итак, я думаю, у меня есть два вопроса: во-первых, как превратить их в строки, а во-вторых, как использовать регулярное выражение для их анализа? Я могу написать регулярное выражение сам, но хочу знать, как применить его к строке в javascript.
Сначала я сделал это:
var array = $('a[onclick*="findCustomer"]');
Теперь у меня есть список:
<a href="javascript:void(0);" onclick="findCustomer('James Smith',808-371- 4984,"Hawaii")">James Smith</a>
Итак, мой вопрос в том, как превратить его в массив строк и как извлечь из него имя клиента, номер телефона и состояние.
1 ответ
Итак, мой вопрос в том, как превратить его в массив строк и как извлечь из него имя клиента, номер телефона и состояние.
Сначала получите все атрибуты onclick (поскольку вы, кажется, хотите использовать jQuery, это можно сделать с помощью $.map
)
var array = $.map($('a[onclick*="findCustomer"]'), function (elm) {
return elm.getAttribute('onclick');
}); // `array` is now an array of the _onclick_ attributes
Затем проанализируйте атрибут, например, с помощью $.each
$.each(array, function (key, val) {
var parts = val.slice(val.indexOf('(')+1, val.lastIndexOf(')')).split(',');
// parts[0] is name, parts[1] is number, parts[2] is state
// you'll need to trim quotes
});
Это действительно плохая идея - пытаться анализировать x / HTML с помощью RegExp, как объяснено здесь . Показанный мной метод подойдет вам, поскольку вы знаете структуру атрибута onclick . Однако гораздо лучшим решением было бы иметь доступ к этим данным с помощью другого метода, который вообще не требует синтаксического анализа HTML.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
808-371- 4984
не заключен в кавычки, аHawaii
- только в двойных кавычках, которые уже есть, поэтому используйте обратную косую черту или поместите простые кавычки."
в"
или"
и закодировать'
как'
(для безопасности).