Как я могу улучшить свой первый пользователь script?
Я написал мой первый пользователь Greasemonkey script, чтобы найти запросы на логотип колледж-футбол subreddit.
Одна морщина должна искать подходящую таблицу стилей, а после ее обнаружения я просматриваю атрибуты selectorText
documents.styleSheets[i].cssRules
для известных имен пользователей.
Сначала я использовал следующий код для поиска комментариев пользователя
var missing = new Array();
var authors = document.evaluate(
"//p[@class='tagline']/a[contains(@class, 'author')]",
document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
for (var i = authors.snapshotLength - 1; i >= 0; i--) {
var a = authors.snapshotItem(i);
if (!hasLogo.hasOwnProperty(a.innerHTML)) {
missing.push(a.innerHTML);
}
}
но jQuery делает это настолько кратким!
var missing = [];
$("p.tagline a.author").each(
function (index) {
var name = $(this).text();
if (!hasLogo.hasOwnProperty(name))
missing.push(name);
});
Пожалуйста, предложите дополнительные улучшения!
Ответы
Ответ 1
Вы можете использовать .map()
, чтобы немного сократить его, и .innerHTML
вместо создания нового объекта jQuery для захвата .text()
, учитывая особенности того, как авторы находятся на странице, например:
var missing = $("p.tagline a.author").map(function() {
var name = this.innerHTML;
return !hasLogo.hasOwnProperty(name) && name;
}).get();