我想将值传递给 Jquery 函数。下面是 Javascript 示例代码。我想将此 javascript 函数转换为 jquery 函数。如何将状态名称传递给 jquery onclick 函数?
<a onclick="showState('state_name')">ADD STATE </a>
function showState(state_name){
openbox_state(state_name);
}
请帮我。
您并不清楚您是否有一系列锚点来添加不同的状态,或者......?
如果这样做,您可以执行以下操作来记录每个链接的适当状态名称:
<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 元素末尾的脚本块中,则不需要准备好的处理程序。)
像这样:
$('#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);
});
});
你可以这样做:
<a onclick="showState()" id="florida">ADD STATE </a>
function showState(state_name){
var state_name = $(this).attr('id')
openbox_state(state_name);
}
此函数将从链接中检索“id”值。然后,您可以将该值传递给您的“openbox_state()”函数。:-)
如果你有多个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);
});
<a>Montana</a>
$('a').on('click', function(){
var state = this.text ; // OR $(this).text(); OR $(this).html();
showState(state);
});