Это чистое решение для JavaScript без каких-либо библиотек или плагинов:
document.addEventListener('click', function (e) {
if (hasClass(e.target, 'bu')) {
// .bu clicked
// Do your thing
} else if (hasClass(e.target, 'test')) {
// .test clicked
// Do your other thing
}
}, false);
, где hasClass
-
function hasClass(elem, className) {
return elem.className.split(' ').indexOf(className) > -1;
}
Кредит относится к Dave и Sime Vidas
Использование более современных JS, hasClass
может быть реализовано как:
function hasClass(elem, className) {
return elem.classList.contains(className);
}
Используйте read -d '' -r file
и установите IFS
только для контекста read
:
find people -name '*.svg' -print0 | while IFS= read -d '' -r file; do
grep '<image' "$file" > /dev/null && echo "$file" | tee -a embeded_images.txt;
done
И укажите ваши переменные.
Хотя ответ Денниса Уильямсона абсолютно правильный, он создает подоболочку , что помешает вам установить какие-либо переменные внутри цикла. Вы можете рассмотреть возможность замены процесса следующим образом:
while IFS= read -d '' -r file; do
grep '<image' "$file" > /dev/null && echo "$file" | tee -a embeded_images.txt
done < <(find people -name '*.svg' -print0)
Первый <
указывает, что вы читаете из файла, а <(find...)
заменяется именем файла (обычно это дескриптор труба), которая возвращает результат из find
напрямую. Поскольку while
читается из файла вместо канала, ваш цикл может устанавливать переменные, доступные из-за пределов области видимости.