#javascript
Вопрос:
у меня есть этот код, необходимый, если селектор не найден (для использования номера замены 0)
const p = 20;
const p1 = document.querySelector("#").textContent;
const p2 = p1.replace(/[^d:]/g, '');
const p4 = p1-(pt2);
document.getElementById("").value = p4;
пример, если у меня есть p1 1, то этот скрипт должен добавить 19 (если число не найдено, что является моей проблемой) Я хотел бы добавить туда что-то подобное, || 0;
однако это не работает, или я делаю что-то не так, я долго искал новое решение и не нашел его, поэтому я обращаюсь к более умным
Я хотел бы сделать что-то подобное
const p1 = document.querySelector("#").textContent;
если этот элемент не найден
, замените в || 0;
const p2 = p1.replace(/[^d:]/g, '');
Комментарии:
1.
#
не является допустимым селектором2. вы могли бы сделать
const p1 = document.querySelector("#")?.textContent || 0;
это таким образом, еслиdocument.querySelector("#")
возвратnull
не приведет к ошибке3. @Браво спасибо, я только учусь так хорошо разбираться: D к счастью, он решил эту проблему здесь благодаря методу If
Ответ №1:
используйте оператор условия if else .
if(){
}else{
}
Ответ №2:
const p1 = document.querySelector("#").textContent;
var p2;
if(p1.match(/[^d:]/g)){
p2 = p1.replace(/[^d:]/g, '');
} else{
p2 = 0
}
Комментарии:
1.
need zero if they can't find the element (const p1 = document.querySelector("#").textContent; )
как этого добиться Я попробовал вашу процедуру здесь (к сожалению, не работает) (этот селектор запросов), если сценарий не найдет ее, чтобы положить туда ноль2. если это условие будет выполнено при нажатии на кнопку, то условие должно быть
if(document.querySelector("#id") === null) { var p2 = 0 } else {var p1 = document.querySelector("#id").textContent; var p2 = p1.replace(/[^d:]/g, '') }
— но если это условие будет выполнено при переходе на страницу, то подождите некоторое время, вы можете использоватьsetInterval()
илиMutationObserver
— если ваш код будет выполнен непосредственно при открытии страницы, просто используйте условие выше3. Alsso вы уверены, что ваше регулярное выражение работает, я протестировал его, и оно ничего не заменяет, я отредактировал его, чтобы заменить только первое число
^d
или для первого использования нескольких чисел^d