2011-02-15 117 views
5

我想在加載頁面時使用JQuery將焦點設置在頁面的第一個元素上。 我可以通過使用如何使用JQuery將焦點設置在頁面的第一個<select>元素上?

$(":input:visible:first").focus(); 

$(':input:enabled:visible:first').focus(); 

根據jquery, set focus on the first enabled input or select or textarea on the page成功地設置爲第一元件的焦點。

我試圖用任何的下面:

$('select:first').focus(); 
$("select").first().focus(); 
$(':visible:first').focus(); 
$('enabled:visible:first').focus(); 

或其他變化我能想到的,但都沒有成功。

任何人都可以幫助我解決這個問題嗎? 我是JQuery的初學者。

我希望此功能適用於所有主流瀏覽器。

非常感謝!

+0

你可以發佈一些有問題的HTML嗎?也許是一個格式問題......?你有沒有在多個瀏覽器中測試過? – 2011-02-15 07:21:31

+0

此外,$(「:visible:first」)將嘗試專注於可見的第一件事。可能不是你要做的。同樣的「啓用」不是一個HTML元素,所以$(「enabled:visible:first」)不會指向任何東西。繼續嘗試,它會一起來。 – 2011-02-15 07:23:46

回答

8

問題很可能是因爲在加載DOM後未運行代碼。試試這一個:

$(document).ready(function(){ 
    $("select:first").focus(); 
}); 

這應該工作。

編輯:您可以通過使用此簡化代碼位:

$(function(){ 
    $("select:first").focus(); 
}) 

如果你使用這種方式,jQuery將觸發功能,當文檔的DOM已準備就緒。

+1

也確保你在執行你自己之前包含jquery庫javascript – 2011-02-15 06:24:04

2

您正在調用未在DOM中加載的元素。將您的代碼放在ready函數中。

jQuery(document).ready(function() { 
    $(":input:visible:first").focus();    
}); 

UPDATE:

正如@大衛回答和評論看到,他是對的。

$(document).ready(function(){ 
    $("select:first").focus(); 
}); 

但你沒有正確包含jquery(如評論中所見)。您錯過了在腳本src之前插入http

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
相關問題