我想将值传递给Jquery函数。 以下是Javascript示例代码。我想将此javascript函数转换为jquery函数。如何将状态名称传递给jquery onclick函数?
<a onclick="showState('state_name')">ADD STATE </a>
function showState(state_name){
openbox_state(state_name);
}
请帮帮我。
答案 0 :(得分:12)
你真的不清楚你是否有一系列锚点来添加不同的状态,或者......?
如果这样做,您可以执行以下操作来为每个链接记录相应的州名称:
<a data-stateName="state_name">ADD STATE </a>
然后在JS中使用jQuery:
$(document).ready(function() {
$("a[data-stateName]").click(function() {
openbox_state( $(this).attr("data-stateName") );
});
});
这会从html中删除内联JavaScript,然后使用jQuery将点击处理程序仅绑定到具有<a>
属性的data-stateName
个元素。然后,处理程序获取该属性的值以传递给openbox_state()
函数。
文档就绪处理程序确保在文档实际准备好之前,即在元素被解析并且可以从JS访问之后,锚点击绑定不会发生。 (如果将JS放在body元素末尾的脚本块中,则不需要现成的处理程序。)
答案 1 :(得分:1)
像这样:
$('#MyID').click(function () {
var StateName = $(this).text();
showState(StateName);
});
然后对于HTML,你可以放一些这样的ID:
<a id="MyID">ADD STATE </a>
或者,如果您有许多状态(我假设您正在尝试这样做),那么您可以通过CSS类引用链接,如下所示:
<a class="StateSelector">ADD STATE </a>
然后你的jquery代码变成:
$('.StateSelector').click(function () {
var StateName = $(this).text();
showState(StateName);
});
要连接事件处理,您可以将jquery代码放在文档就绪函数中,如下所示:
$(document).ready(function() {
$('.StateSelector').click(function () {
var StateName = $(this).text();
showState(StateName);
});
});
答案 2 :(得分:1)
如果您有多个a
,其中包含不同的参数。
<a onclick="showState('Delhi')">ADD STATE</a>
<a onclick="showState('Punjab')">ADD STATE</a>
<a onclick="showState('Gujrat')">ADD STATE</a>
function showState(state_name){
openbox_state(state_name);
}
然后你可以使用像这样的自定义属性
<a state="Delhi">ADD STATE</a>
<a state="Punjab">ADD STATE</a>
<a state="Gujrat">ADD STATE</a>
$('a').click(function () {
var StateName = $(this).attr("state");
openbox_state(StateName);
});
答案 3 :(得分:1)
您可以这样做:
<a onclick="showState()" id="florida">ADD STATE </a>
function showState(state_name){
var state_name = $(this).attr('id')
openbox_state(state_name);
}
此功能将检索&#34; id&#34;来自链接的价值。然后,您可以将值传递到&#34; openbox_state()&#34;功能。 : - )
答案 4 :(得分:0)
<a>Montana</a>
$('a').on('click', function(){
var state = this.text ; // OR $(this).text(); OR $(this).html();
showState(state);
});