Я хочу получить значение ng-show через jq, но это не тот результат, который я ожидал - PullRequest
0 голосов
/ 21 декабря 2018

Я могу распечатать все значения ng-show, но не могу отфильтровать то, что хочу.Я не знаю, является ли это ошибка регулярного выражения или angularjs.Я попробовал это непосредственно в инструментах разработчика, и результат успешен.Пожалуйста, проверьте полный код в codepen, спасибо

var thList = $('thead').find('th');
        var fieldPattern = /\'(.*)\'.*\|.*/g;
        var allTableField = [];
        var valueList = [];
        angular.forEach(thList, function(th) {
            var value = $(th).attr('ng-show');
            console.log(value);
            if (/showField/g.test(value)) {
                valueList.push(value);
                var results = fieldPattern.exec(value);
                if (results) {
                    allTableField.push(results[1]);
                }
            }
        });

Codepen

Извините, мой английский ужасен и его трудно выразить.Я хочу получить значения ng-show через JQ и отфильтровать значения, которые соответствуют регулярным выражениям.В конце концов, я получил только часть этого.

введите описание изображения здесь

1 Ответ

0 голосов
/ 21 декабря 2018

Таким образом, ваш valueList содержит больше «значений», чем ваш allTabField, остальные значения фильтруются вашим регулярным выражением fieldPattern

РЕДАКТИРОВАТЬ:

Использование конструктора RegExp, например var fieldPattern = new RegExp("\'(.*)\'.*\|.*");

Альтернативное решение:

angular.forEach(thList, function(th) {
                    var value = $(th).attr('ng-show');
                    console.log(value);
                    if (/showField/g.test(value)) {
                        valueList.push(value);
                        /* changes are made here */
                        var index = value.indexOf('|');
                        var results = value.substring(1, index - 1);
                        if (results) {
                            allTableField.push(results);
                        }
                        /* End of changes */
                    }
                });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...