我想將一個值傳遞給Jquery函數。 以下是JavaScript示例代碼。我想將此javascript函數轉換爲jquery函數。我如何將狀態名稱傳遞給jQuery的onclick函數?如何將參數傳遞給JQuery函數?
<a onclick="showState('state_name')">ADD STATE </a>
function showState(state_name){
openbox_state(state_name);
}
請幫幫我。
我想將一個值傳遞給Jquery函數。 以下是JavaScript示例代碼。我想將此javascript函數轉換爲jquery函數。我如何將狀態名稱傳遞給jQuery的onclick函數?如何將參數傳遞給JQuery函數?
<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"));
});
});
這消除了內聯JavaScript中的JavaScript,然後使用jQuery將點擊處理程序綁定到那些具有data-stateName
屬性的<a>
元素。處理程序然後獲取該屬性的值以傳遞給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代碼BECO MES:
$('.StateSelector').click(function() {
var StateName = $(this).text();
showState(StateName);
});
要連接的事件處理,你可以把jQuery代碼在文檔準備功能是這樣的:
$(document).ready(function() {
$('.StateSelector').click(function() {
var StateName = $(this).text();
showState(StateName);
});
});
<a>Montana</a>
$('a').on('click', function(){
var state = this.text ; // OR $(this).text(); OR $(this).html();
showState(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);
});
我覺得數據屬性(''data-state="...">'和'$(this)。 data('state')')會更好,並且會給你啓動有效的HTML。 –
你可以做這樣的事情:
<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()」函數。:-)
如果你願意的話,你也可以'$(this).data('stateName')' –
@muistooshort - True。I並沒有這樣做,因爲我習慣於使用'.data()'來檢索之前用'.data()'設置的值,而不是屬性值。在這種情況下並不重要,但是我不喜歡'.data()'嘗試aut的方式omatic類型轉換,用於檢索html屬性。 – nnnnnn
我聽說你在「軟件假裝比它更聰明」的一部分,我更喜歡誠實和一貫的愚蠢:) –