我正在尝试学习一些jQuery,并使用以下代码设置测试页面:
<a id='encode' href='javascript: void(0)'>encode</a> |
<a id='decode' href='javascript: void(0)'>decode</a> |
<br/>
<textarea id='randomString' cols='100' rows='5'></textarea>
<script type='text/javascript'>
$(document.ready(function () {
$('#encode').click(function() {
$('#randomString').val(escape($('#randomString').val()));
});
$('#decode').click(function() {
$('#randomString').val(unescape($('#randomString').val()));
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我的想法是我可以在textarea中放置一些东西,然后点击"编码"或"解码",它将要么逃避或者忽略我放入textarea的东西.
这段代码工作正常,但我的问题与我如何更改textarea的值有关.在我的代码中,我选择了两次textarea值:一次(un)转义它,再一次改变值.IMO这看起来很笨拙,也许没必要.我想也许我可以这样做:
$('#randomString').val(escape(this));
Run Code Online (Sandbox Code Playgroud)
但this
似乎是指我点击的链接的对象,而不是#randomString
选择器,所以是否有一些其他可以用来引用它的魔术词$('#randomString')
?
如果我理解正确的话,简短的答案是否定的。没有办法引用$('#randomString')
你正在谈论的地方。它只是该val
方法的一个参数,因此它只是简单的 JavaScript 语法,没有 jQuery“魔法”。
为了完成手头的任务并使代码更干净、更简洁,我会保存 jQuery 对象,这样#randomString
您就不必继续创建它:
$(document.ready(function () {
var $rndStr = $('#randomString');
$('#encode').click(function() {
$rndStr.val(escape($rndStr.val()));
});
$('#decode').click(function() {
$('#rndStr').val(unescape($rndStr.val()));
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
87 次 |
最近记录: |