http://api.jquery.com/jquery.each/
Читая справочную документацию выше, вы можете увидеть определение
jQuery.each( array, callback )
, где callback
принимает форму function( index, value ){}
Так что вам нужно вместо этого,
window.update = function(){
$.each($("img"),function(i,v) {
let $v = $(v);
console.log('$v',$v,v); // note $v vs v
let src = $v.attr("src").split("&width")[0]+
'&width=' + $('#size2').val().replace('#', '') +
'&height=100&RenderText=' + $('#name').val().replace('#', '') +
'&TextSize=' + $('#size1').val().replace('#', '') +
'&TextColor=%23' + $('#clr1').val().replace('#', '') +
'&BgColor=%23' + $('#clr2').val().replace('#', '');
$v.attr('src', src);
});
}
Также обратите внимание, что ваш .img
должен был быть img
--- img
- это элемент HTML, тогда как .img
- это селектор запроса для атрибута класса. (например, .img
найдет <img class="img">
, но не <img>
. Просто используйте $('img')
вместо)
Кроме того, у вас нет class="control"
в любом месте, поэтому функция .change
никогда не будет вызываться.
* * * * * * * * * * * * * * * * * * * * $.each
должен входить внутрь $('input').on('change',function(){})
, но вам нужно удалить все экземпляры onChange='update()'
в этих элементах ввода, если вы хотите пройти по этому маршруту. Вы также можете просто поместить $.each
внутрь function window.update = function(){}
--- Дайте мне знать, если один из этих двух не имеет смысла или не работает для вас.