Я понимаю проблему, мой элемент не находится в DOM, и я должен превратить его в объект
Это не проблема.
Проблема заключается в потому что attr()
возвращает строку, а не jQuery объект, поэтому вы не можете связать val()
с ней. Вам необходимо разделить вызовы к одному и тому же объекту jQuery.
let $el = $("#progress_bar");
let valuenow = $el.attr("aria-valuenow");
$el.val(iTempsMax); // set the value
В качестве альтернативы, сначала установите val()
, а затем получите атрибут, хотя это потенциально запутывает вызов val()
.
let valuenow = $("#progress_bar").val(iTempsMax).attr("aria-valuenow");
Использование этого шаблона является вопросом личного предпочтения перед ясностью или краткостью кода:
С другой стороны, если вы пытаетесь only , установите значение атрибут aria-valuenow
(а не атрибут value
самого элемента), тогда вам нужно пропустить вызов val()
и передать второй аргумент attr()
, например:
$("#progress_bar").attr("aria-valuenow", iTempsMax);