文本框值 returns 奇怪的代码而不是里面的内容
Textbox value returns weird code instead of what's inside of it
当我想向现有文本框添加笑脸时,我发现了一些问题。代码
$cnt=$("#comContent").val
$("#addSmiley").click(function() {
console.log($cnt);
$cnt = $cnt + ":)";
console.log($cnt);
});
#comContent {
width: 100%;
height: 120px;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>
基本上我想做的是,在用户单击笑脸图标后,代码应将“:)”添加到文本框。我添加了 console.log 以查看它为什么不添加任何内容。然后我看到了这个:
function (a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(gb,""):null==c?"":c)}}:)
我以为这将是一个简单的代码,但我不知道它有什么问题,为什么它不起作用
$cnt=$("#comContent").val();
$("#addSmiley").click(function() {
console.log($cnt);
$cnt = $cnt + ":)";
console.log($cnt);
});
#comContent {
width: 100%;
height: 120px;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>
为您的 .val 添加括号。像 $cnt=$("#comContent").val();
问题
- 您得到的只是函数的引用
val
$("#comContent").val // This line gets the implementation of function `val`
解决方案
- 你真正想要的是那个函数的执行,所以你需要这样调用它:
$("#comContent").val()
看这段代码:
$cnt = $("#comContent").val();
$("#addSmiley").click(function() {
console.log($cnt);
$cnt = $cnt + ":)";
console.log($cnt);
});
#comContent {
width: 100%;
height: 120px;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>
看,现在您正在调用函数 val
并获得预期值。
当我想向现有文本框添加笑脸时,我发现了一些问题。代码
$cnt=$("#comContent").val
$("#addSmiley").click(function() {
console.log($cnt);
$cnt = $cnt + ":)";
console.log($cnt);
});
#comContent {
width: 100%;
height: 120px;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>
基本上我想做的是,在用户单击笑脸图标后,代码应将“:)”添加到文本框。我添加了 console.log 以查看它为什么不添加任何内容。然后我看到了这个:
function (a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(gb,""):null==c?"":c)}}:)
我以为这将是一个简单的代码,但我不知道它有什么问题,为什么它不起作用
$cnt=$("#comContent").val();
$("#addSmiley").click(function() {
console.log($cnt);
$cnt = $cnt + ":)";
console.log($cnt);
});
#comContent {
width: 100%;
height: 120px;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>
为您的 .val 添加括号。像 $cnt=$("#comContent").val();
问题
- 您得到的只是函数的引用
val
$("#comContent").val // This line gets the implementation of function `val`
解决方案
- 你真正想要的是那个函数的执行,所以你需要这样调用它:
$("#comContent").val()
看这段代码:
$cnt = $("#comContent").val();
$("#addSmiley").click(function() {
console.log($cnt);
$cnt = $cnt + ":)";
console.log($cnt);
});
#comContent {
width: 100%;
height: 120px;
border: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://afeld.github.io/emoji-css/emoji.css" rel="stylesheet">
<textarea id="comContent" cols="70" rows="20"></textarea>
<i style="margin-left: 10px;overflow:visible;cursor:pointer;" id="addSmiley" class="em em-smiley"></i>
看,现在您正在调用函数 val
并获得预期值。