提问人:Jeff 提问时间:8/23/2009 最后编辑:Jeff 更新时间:8/23/2009 访问量:131
JavaScript 表单焦点,我的代码看起来还好吗?
JavaScript form focus, does my code look okay?
问:
今天早上我问了一个关于我的 JS 语法的非常平凡的问题,有人建议我改用他们的代码,所以我继续这样做,因为我对 JS 的了解几乎为零。
利用我适度的PHP知识,我做了一个轻微的修改,添加了一个带有语句的第二个ID(见下文),只是想知道你们是否对JavaScript有更多了解,可以告诉我它是否看起来不错?'else if'
或者,也许你会完全以不同的方式做?
window.onload = formfocus;
function formfocus()
{
var id_one;
var id_two;
id_one = document.getElementById( 'author' );
id_two = document.getElementById( 's_primary' );
if ( id_one )
{
id_one.focus();
id_one.value = '';
}
else if ( id_two )
{
id_two.focus();
id_two.value = '';
}
}
编辑:我有点担心我的...但不确定是否有任何其他方法可以实现我想要的东西。window.onload = formfocus();
答:
-1赞
Cleiton
8/23/2009
#1
它看起来很好,可读性强,易于理解。
为了增加您对 javascript 语法的了解,您也可以做类似的事情:
function formfocus()
{
var id_one;
var id_two;
id_one = document.getElementById( 'author' );
id_two = document.getElementById( 's_primary' );
with(id_one || id_two)
{
focus();
value = '';
}
}
*ps,我知道这个例子很丑陋(但我喜欢使用“with”LOL)。
评论
3赞
James
8/23/2009
请不要使用 with() ...这通常被视为一种不好的做法,因为任何不存在的属性访问都被认为是全局的。
0赞
Michael Koval
8/23/2009
虽然在这么短的片段中它并不重要,但“with”通常被认为是不好的做法。它强制 Javascript 解释器根据 id_one 或 id_two 范围内的函数检查块中的每个变量和函数调用。更不用说,在较大的脚本中会有很多歧义;例如,如果“value”也是一个全局变量。请参见:barryvan.com.au/2009/05/avoid-javascripts-with-keyword
3赞
Chris
8/23/2009
#2
它肯定可以更简洁,特别是如果你使用 jquery。但是假设你想坚持使用普通的旧javascript,我至少会更改以下内容:
var id_one;
var id_two;
id_one = document.getElementById( 'author' );
id_two = document.getElementById( 's_primary' );
自
var id_one = document.getElementById( 'author' );
var id_two = document.getElementById( 's_primary' );
此外,不用空格括住函数参数是相当标准的做法,但我认为这是一个风格问题,不应该在这里争论。
0赞
Michael Koval
8/23/2009
#3
虽然您的代码正常运行,但以下内容要少得多:
window.onload = function () {
var id_one = document.getElementById("author");
var id_two = document.getElementById("s_primary");
// Original code...
}
如果您打算编写更多的 Javascript,请考虑一些事情。
评论