2010-09-08 36 views
5

我有一個功能,我需要出現在jQuery $(document).ready(function() {} - 我是au fait與JavaScript,但沒有真正與jQuery合作。我如何jQuerify這個功能?jquery v javascript

function populateContext() 
{ 
    contextTxtBox = document.getElementById('searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    contextTxtBox.value = pathArr[1].toUpperCase(); 
}; 
+3

jQuery是JavaScript的,它只是提供了一些功能,使經常使用的任務更容易,也更慢。 這個任務很簡單,最好單獨使用Javascript,因爲它會更快,並且依賴性更小。 – AlexanderMP 2010-09-08 15:26:39

+1

+1'jQuerify' – 2010-09-08 15:26:39

+0

@Alexander。確實......但在這種情況下它是微不足道的。 – 2010-09-08 15:39:35

回答

3

它實際上幾乎是相同的,因爲我覺得唯一值得jQuerifying(好詞)是DOM元素。

function populateContext() 
{ 
    var contextTxtBox = $('#searchContext'); 
    var pathArr = window.location.pathname.split('/'); 
    contentTxtBox.val(pathArr[1].toUppercase()); 
} 

$(document).ready(function() 
{ 
    populateContext(); 
}); 
+0

contentTxtBox.value它也可以嗎? – 2010-09-08 15:26:10

+0

這是一個錯字,我的意思是'val()'。 – BoltClock 2010-09-08 15:26:33

+1

如果你所做的 – 2010-09-08 15:33:52

1

這樣,如果我理解正確的話

function populateContext() 
{ 
    contextTxtBox = $('#searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    contextTxtBox.val(pathArr[1].toUpperCase()); 
}; 
1
$(document).ready(function() { 
//whatever code you want 

}); 

function populateContext() { 
    pathArr = window.location.pathname.split('/'); 
    $("#searchContext").Val(pathArr[1].toUpperCase()); 
}; 

只是一個旁註:jQuery是JavaScript的,所以你可以混合和匹配:)

0
function populateContext(){ 
    contentTxtBox = $('#searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    $(contextTxtBox).val(pathArr[1].toUpperCase()); 
} 
0

我不是確定你的意思,但你可以這樣做:

$(document).ready(function() { 
    populateContext() 
}); 

如果你想提高你的功能,使使用jQuery的,你可以做這樣的:如果你提供更多的信息,關於究竟什麼是您的疑問,我也許能更好地解釋

function populateContext() { 
    var $contextTxtBox = $('#searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    $contextTxtBox.val(pathArr[1].toUpperCase()); 
}; 

+0

我的實際指令是添加:on DOM加載函數監聽器'DomLoaded'----------- function populateContext() { \t contextTxtBox = document.getElementById('searchContext'); \t pathArr = window.location.pathname.split('/'); \t contextTxtBox.value = pathArr [1] .toUpperCase(); } //填充搜索範圍 DomLoaded.load(populateContext); Jquery如何處理監聽器? – ashash 2010-09-08 16:18:52

+0

這取決於你感興趣的事件類型,在你的情況下,是DOM Ready事件,你可以簡單地:$(document).ready(callback);當DOM準備就緒時,jQuery將調用「回調」函數。但我認爲你應該閱讀:http://api.jquery。com/ready /它會讓事情更清楚:) – Uoli 2010-09-08 16:30:12

1

這應該做的伎倆

function populateContext() { 
    var aPath = $(location).attr('href').split("/"); 
    $('#searchContext').val(aPath[1].toUpperCase()) 
} 
+0

我似乎是唯一一個jQuerifying位置:) – michael 2010-09-08 15:34:28

+0

不錯 - 歡呼的朋友一如既往的讚賞。 – ashash 2010-09-08 16:08:35

+0

+1 for jQuerifying the location – 2010-09-08 19:59:14

4

jQuerify?讓它成爲一個插件!

(function($){ 

    $.fn.populateContext = function(){ 
     var pathArr = window.location.pathname.split('/'); 
     return this.val(pathArr[1].toUpperCase()); 
    }; 


}(jQuery)); 

,並使用它像這樣

$(document).ready(function(){ 
    // Same as window.onload 
    $("#searchContext").populateContext(); 
}); 
+0

Shucks,我剛剛用完了我在其他地方的最後一票,所以我不能起來這個。但道具把它變成一個插件!真正的精神jQuery :) – BoltClock 2010-09-08 15:38:33

+0

現在這真的jQueryfied haahahaha – mcgrailm 2010-09-08 16:41:17

+0

幾乎2年後回來終於投票。 – BoltClock 2012-07-07 05:19:26

相關問題