2009-08-22 66 views
0

今天早上我問了一個關於我的JS語法的非常平凡的問題,並且有人建議我使用他們的代碼,所以我繼續使用它,因爲我幾乎知道關於JS的Zero。JavaScript窗體焦點,我的代碼看起來好嗎?

使用我的中等PHP知識,我做了一些修改,在'else if'聲明中添加了第二個ID(請參閱下面的內容),並且只是想知道如果對JavaScript有更多瞭解的人可以告訴我它是否看起來不錯?

或者,也許你會做完全不同的?

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();但不能確定是否有任何其他的方式來完成我想要的東西。

+0

是的,它會正常工作。 – TheVillageIdiot 2009-08-22 17:10:03

回答

3

這可以肯定是更簡潔,特別是如果你使用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'); 

此外,這是相當標準的做法,是不會圍繞與空間的函數參數,但我想這是一個不應該在這裏討論的風格問題。

-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,這個例子是醜陋的,我知道(但我喜歡用「與」 LOL)。

+3

請不要與()...一起使用它通常被認爲是一種不好的做法,因爲任何不存在的屬性訪問被假定爲全局的。 – James 2009-08-22 17:06:56

+0

儘管在這麼短的片段中並不重要,但「with」通常被認爲是不好的做法。它強制Javascript解釋器檢查塊中的每個變量和函數調用,以針對id_one或id_two範圍中的函數。更不用說,大型腳本中會有很多不明確的地方;例如,如果「值」也是一個全局變量。請參閱:http://www.barryvan.com.au/2009/05/avoid-javascripts-with-keyword/ – 2009-08-22 17:11:07

0

當你的代碼是功能性的,下面是詳細的要少得多:

window.onload = function() { 
    var id_one = document.getElementById("author"); 
    var id_two = document.getElementById("s_primary"); 

    // Original code... 
} 

要考慮的事情,如果你編寫更多的JavaScript計劃。

相關問題