- 您在
'It's empty'
中有一个引号。
- 没有理由使用
innerHTML
- 您应该使用
===
来比较相等性。
const input = document.querySelector('#input');
const output = document.querySelector('#output');
input.addEventListener('input',() =>
output.textContent = input.value ? input.value : "It's empty.");
<input id="input">
<div id="output"></div>
,
除了字符串中的“撇号”之外,您还将Vanilla Javascript与JQuery混合在一起,并且触发器位于if()块中,该块应该在触发器上调用。
像这样更改代码:
const textInput = $('#input');
const textOutput = $('#output');
textInput.on("input",function() {
if ( $(this).val() === "" ) {
textOutput.html('It\'s empty');
} else {
textOutput.html($(this).val());
}
});
,
修复如果
if ( textInput.value == "" ) {
textOutput.innerHTML += 'It\'s empty';
} else {
textInput.on("input",function() {
textOutput.text($(this).val());
});
}
更好的话:
if (!textInput.value) {
textOutput.innerHTML = 'It\'s empty';
} else {
textInput.on("input",() => textOutput.text($(this).val()));
}
简短:
!textInput.value ? textOutput.innerHTML = 'It\'s empty' : textInput.on("input",() => textOutput.text($(this).val()));
,
有关需要更改的逐步说明
在使用jQuery时:
-
textInput.value == ""
应该是! textInput.val()
-
textOutput.innerHTML = 'it's empty'
应该是textOutput.text("it's empty");
-
textOutput.text($(this).val());
应该是textOutput.text(textInput.val());
,并且都应该位于on "input"
侦听器之内,即
textInput.on('change',function(){ /*code goes here*/ });
,
有你去
const $textInput = $('#input');
const $textOutput = $('#output');
$textInput.on('input',function(){
if($textInput.val() != '') {
$textOutput.text($textInput.val());
}
else {
$textOutput.text('It\'s empty');
}
});
本文链接:https://www.f2er.com/3157342.html