2011-04-05 80 views
1

我有兩個JavaScript程序,一個是我在舊公司使用過的,另一個是我在一個網站遇到的。今天,我注意到我的同事在程序中使用了這兩個標準,並且在完成產品之前,我們必須將所有內容都改爲一個標準代碼。哪個js功能更適合工業標準?

<script type="text/javascript"> 
    // Reference the textbox 
    var txt = document.getElementById("<%=txtName.ClientID%>"); 

    // If the textbox was found, call its focus function 
    if (txt != null) 
     txt.focus(); 
</script> 

<script type="text/javascript"> 
    // Reference the textbox and call its focus function 
    var txt = $("#txtName"); 

    txt.focus(); 
</script> 

如果你是在這種情況下,你會建議哪一個,爲什麼?

+0

感謝您的回答朋友。爲所有答案添加+1。有一個美好的一天:D – 2011-04-05 19:51:08

回答

1

如果你在一個團隊工作txtName.ClientID可能有一個更清晰的同事你的意思。不得不在每天的基礎上仔細閱讀來自同事的許多代碼,我會爲此付出代價。
或採取兩全其美的,並使用類似:$("#<%=txtName.ClientID%>").focus()

+2

txtName.ClientID get的服務器端txtName控件表示的DOM元素的實際id屬性。這是唯一必要的,因爲ASP.NET不會創建漂亮的HTML。它實際上維護性較差,意義不大。 – Raynos 2011-04-05 17:36:34

2

第一個是純JS,第二個是用jQuery包裝。如果你已經採用jQuery作爲JS框架,第二個選項更好:)。 在這種特殊情況下的第二個更好,因爲如果該變量爲null或不是必須在意測試(您正在調用jQuery元素的焦點函數,所以它會考慮檢查元素是否在DOM或不)

+0

感謝您的解釋,但我們不使用js框架 – 2011-04-05 19:49:08

1

第二個使用jquery,所以它依賴於該庫,但它很可讀。你甚至可以把它寫得更短:$("#txtName").focus();

第一個更快,但總體而言,這種差異並不重要,但使用jQuery編寫和讀取代碼更容易。

+1

'$(「#txtName」)。focus()* *會*工作。 – KooiInc 2011-04-05 17:14:31

+0

添加外部文件是不好的選擇,所以首先會很好,謝謝。額定+1 – 2011-04-05 19:50:27

1

正如stecb說,第一個是普通的JavaScript代碼,第二個是某種JS庫(最有可能的jQuery)。這裏沒有正確或錯誤的方法,儘管如果你正在加載它,顯然是在整個項目中使用該庫是有意義的。使用普通JavaScript所帶來的潛在性能收益對於現代系統的基本使用可以忽略不計。

你應該檢查是否所有的網頁/頁面加載JS庫,有時開發者只會加載某些頁面上的某些庫,這將阻止你使用庫,除非你包含它。