2013-02-12 268 views
0

所以我是一個Javascript新手,並且無法弄清楚如何將一個變量從我的HTML模板傳遞給Javascript。將一個變量傳遞給Javascript

我想通過用戶輸入到javascript的搜索查詢。

這是我的模板來獲取搜索查詢。

<form class="well-whatsnext form-search" style="text-align:center; border-radius:10px 10px 10px 10px; width:900px; height:0px;background-repeat:no-repeat;margin-bottom:100px;" action="/search/?q="> 
<center> 
<input type="text" id = "form-search" value="Search for Stuff" class="input-xxlarge search-query" style="margin: 30px 0px 0px 70px; height:50px;width:600px;font-size:20px;vertical-align:middle;text-align:center;border-radius:10px 0px 0px 10px;float:left;border-right:0px;color:grey;border-right:0px;" name="q"> 
</center> 
<br> 
</form> 

這裏是我的JavaScript代碼段:

$("#form-search").click(function() { 
    // This sends us an event every time a user clicks the button 
    mixpanel.track('MainSearch', {'query' : search-query, 'url' : window.location.pathname}); 
}); 

顯然,search-query不是指查詢,因爲我沒有得到正確的輸出我想要的正確方法。

如何捕獲用戶搜索的查詢的變量?

回答

2

使用普通的JavaScript儘可能。

{'query': document.getElementById('form-search').value} 
+0

謝謝 - 這種方法和上面的方法有什麼區別? – user1328021 2013-02-12 02:41:23

+0

上面的內容大約慢了100倍,並且僅依賴於您在整個頁面上僅使用「搜索查詢」類。 ID根據定義是唯一的。 – 2013-02-12 02:42:01

+1

我不知道'100倍慢'是一個公平的評估,更像是85%(http://jsperf.com/jquery-selector-value) – vol7ron 2013-02-12 02:53:52

2

使用$('.search-query').val()以獲取與類名輸入元素的值:

{ 'query' : $('.search-query').val() ... } 
+0

非常感謝!所以基本上是用Javascript插入輸入的格式 - $('。).val() - 對不起,我是Javascript的新手,主要是將它用於MixPanel,因此爲什麼我要破解我的理解它.... – user1328021 2013-02-12 02:36:31

+1

@ user1328021這是JavaScript,但不是純粹的JavaScript。是的,你需要'$('。class-name')'但注意開頭的'.'意味着它是類名後的名字。對於具有id屬性的元素,您需要'#'。例如:'$('#id-name')'。 – 0x499602D2 2013-02-12 02:42:16

+0

@David每次將jQuery用作選擇器引擎時,上帝都會殺死一個lolcat。 – 2013-02-12 02:43:05