将一个变量传递给Javascript
所以我是一个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
不是指查询,因为我没有得到正确的输出我想要的正确方法。
如何捕获用户搜索的查询的变量?
使用普通的JavaScript尽可能。
{'query': document.getElementById('form-search').value}
使用$('.search-query').val()
以获取与类名输入元素的值:
{ 'query' : $('.search-query').val() ... }
非常感谢!所以基本上是用Javascript插入输入的格式 - $('。
@ user1328021这是JavaScript,但不是纯粹的JavaScript。是的,你需要'$('。class-name')'但注意开头的'.'意味着它是类名后的名字。对于具有id属性的元素,您需要'#'。例如:'$('#id-name')'。 – 0x499602D2 2013-02-12 02:42:16
@David每次将jQuery用作选择器引擎时,上帝都会杀死一个lolcat。 – 2013-02-12 02:43:05
谢谢 - 这种方法和上面的方法有什么区别? – user1328021 2013-02-12 02:41:23
上面的内容大约慢了100倍,并且仅依赖于您在整个页面上仅使用“搜索查询”类。 ID根据定义是唯一的。 – 2013-02-12 02:42:01
我不知道'100倍慢'是一个公平的评估,更像是85%(http://jsperf.com/jquery-selector-value) – vol7ron 2013-02-12 02:53:52