getElementById()
– только у document. См. методы Element.document.getElementById('irc_cc')
// словарь bbcode: className
const dict = {
'info': 'info-text',
'admin': 'admin-text',
};
var tds = document.getElementsByTagName("td");
for (let k = 0; k < tds.length; k++) {
let td = tds[k];
if (td.className !== 'posttdMessage') continue;
let s = td.innerHTML;
for(let bb in dict) {
let re_open = new RegExp('\\[' + bb + '\\]', 'ig');
let re_close = new RegExp('\\[/' + bb + '\\]', 'ig');
s = s.replace(re_open, '<div class="' + dict[bb] + '">').replace(re_close, '</div>');
}
td.innerHTML = s;
}
<script>
var str = "один три два три три три";
var words = str.split(" ");
var collect = {};
for (var i = 0; i < words.length; i++) {
// если в словаре еще нет свойства words[i] заводим такое свойство с значением 0
if (!collect[words[i]])
collect[words[i]] = 0;
// увеличиваем счетчик
collect[words[i]]++;
}
// вывод результатов
for(var word in collect)
console.log(word, collect[word]);
</script>
console.log()
идёт в консоль, и на странице ничего не появится:var b = String(a.num);
b.split("");
a = '<span class="new">';
for (var e = 0; e < b.length; e++) a += "<span>" + b.charAt(e) + "</span>";
a += "</span>";
d.find(".new").attr("class", "cur");
d.append(a);
d.find(".cur").fadeOut(100, function() {
c(this).remove()
});
e = 1;
d.find(".new span").each(function() {
c(this).delay(parseInt(150 / b.length) * e++).animate({
top: 0
}, "fast")
})
span
со стилем позиционирования где-то высоко, по очереди дают эффект .animate() снижающий свойство top
до 0.#RS-number .new {
position: absolute;
left: 0;
top: 0;
right: 0;
}
#RS-number .new span {
position: relative;
top: -70px;
}
console.*
умеет UglifyJS с опцией drop_console: true
. const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
...
optimization: {
minimizer: [
new UglifyJSPlugin({
uglifyOptions: {
compress: {
drop_console: true,
}
}
})
]
}
document.addEventListener('click', function(){ console.log(this, arguments); });
document
, а непосредственно на каждую из кнопок, внутри обработчика this
будет тем самым кликнутым элементом. start()
не определена там, где её вызывают.var now = new Date().getTime();
console.time('myFunc1'); // начало отсчёта
myFunction1( arg1, arg2); // измеряемая функция или кусок кода, for(...i < 100000...)
console.timeEnd('myFunc1'); // выведет в консоль время выполнения:
// myFunc1: 118ms
setInterval()
. При наступлении события останавливать тот interval, и через нужную паузу запускать новый с той же функцией.var flag = false;
this.next = function() {
that.img[i].classList.remove("activeImg");
i++;
if (i >= that.img.length) i = 0;
that.img[i].classList.add("activeImg");
};
setInterval(
function() {
if(flag) return;
that.next()
},
Math.floor(Math.random() * (5000 - 2000 + 1)) + 2000
);
function onEvent(){
flag = true;
setTimeout(()=>{ flag=false}, 3000);
}
$(document).on("keydown", function(e){
console.log(e.key) // ArrowLeft, ArrowRight
})
var f = function(){};
// Без скобок:
f; // просто в воздух заявили, что есть у нас такая функция
// и со скобками:
f(); // тут уже результат выполнения этой функции, т.е. заставили её сработать.
var f = function(){ return 'OK'; };
typeof f; // function
typeof f(); // string
var f = function(a, b) { return a + b; };
typeof f; // function
typeof f(1,2); // number
typeof (function(a,b){return a+b;}); // function
typeof (function(a,b){return a+b;})(1, 2); // number
var s = '<span toster="two">text</span>';
var el = document.createElement('div');
el.innerHTML = s;
var span = el.children[0];
var value;
var attrs = span.attributes;
for(let i = 0; i < attrs.length; i++) {
if( attrs[i].name === 'toster') {
value = attrs[i].value;
break;
}
}
if(value) {
// нашлось
}
var $script = require("scriptjs");
$script("//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", function() {
$('body').html('It works!')
});