2017-05-23 48 views
1

使用jQuery,如何在表單選擇標記中添加一些額外信息?jquery - 在選擇標記內添加額外數據

在我的搜索中,我已經看到jQuery的append和add和html標籤,但它看起來他們添加項目下方的信息,而不是在項目中?

我想補充...

eform="Australian State::1" 

入行......

<select id="state-au" name="state-au"> 

所以它成爲...

<select id="state-au" name="state-au" eform="Australian State::1"> 

我希望能利用這個在一個MODx Evolution電子郵件表格中,使澳大利亞國家選擇框成爲jQuery的必填字段 - 該選擇框取決於國家選擇框:如果Au顯示Stralia,顯示澳大利亞州選擇框。我正在用下面的代碼這樣做,所以新的代碼將被添加到這...

$('#country').bind('change', function (e) { 
    if($('#country').val() == 'AU') { 
     $('#stateAU').slideToggle('fast'); 
    } 
    else { 
     $('#stateAU').hide(); 
    } 
}).trigger('change'); 

任何幫助極大的讚賞。

回答

4

使用jQuery的attr()方法添加(或更新)屬性元素:

添加新的屬性以:

$("#state-au").removeAttr("eform"); 

解決方案:

$("#state-au").attr("eform","Australian State::1"); 

與刪除屬性

$('#country').bind('change', function (e) { 
    if($('#country').val() == 'AU') { 
     $("#state-au").attr("eform","Australian State::1"); 
     $('#stateAU').slideToggle('fast'); 
    } 
    else { 
     $("#state-au").removeAttr("eform"); 
     $('#stateAU').hide(); 
    } 
}).trigger('change'); 

如果要將數據綁定到特定元素,我建議使用.data()。檢查下面的例子。

設定數據使用$("#state-au").data("eform", "Australian State::1")

獲取數據使用$("#state-au").data("eform")

刪除數據使用$("#state-au").removeData("eform")

。數據()

商店arbitra ry與匹配元素相關聯的數據,或者返回匹配元素集合中第一個元素的指定數據存儲區的值。

REF:https://api.jquery.com/data/

的。數據()方法允許我們任何類型的DOM元素的數據附加的方式,是從循環引用安全並因此從存儲器泄漏。

.removeData()

的.removeData()方法允許我們使用。數據以刪除以前設置的值()。當用鍵名稱調用時,.removeData()會刪除該特定值。當不帶參數調用時,.removeData()將刪除所有值。

REF:https://api.jquery.com/removeData/

$(document).ready(function() { 
 
    $("#state-au").data("eform", "Australian State::1"); 
 
    console.log($("#state-au").data("eform")); 
 
    $("#state-au").removeData("eform"); 
 
    console.log($("#state-au").data("eform")); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="state-au" name="state-au"></select>

+0

數據,你爲什麼要你的鏈接前添加W3Schools的參考到jQuery自己的綜合文檔? (或者根本沒有?他們不是一個非常有信譽的網站,儘管質量比以前高。) – nnnnnn

+0

@nnnnnn更新,謝謝您的詢問 –

+0

非常感謝您的幫助Daniel H.這聽起來像一個很棒的方式去做吧。請原諒我的無知/缺乏JavaScript經驗,但我在「if AU」位內的「country-bind-change」代碼中使用它嗎?例如:內部: 'if($('#country')。val()=='AU'){' 現在我想起了它(很抱歉),我想我可能需要一個逆轉場景,澳大利亞未被選爲國家,eform =「澳大利亞國家:: 1」代碼將從狀態選擇項目(在原始jquery代碼的其他部分)中刪除,因此不需要隱藏字段 – user3643520

0
$("#state-au").attr("eform", "Australian State::1"); 
0

HTML5支持可用於附接於DOM附加信息/數據的數據attribtutes。 jQuery的支持這個功能使用其數據()方法

<select id="state-au" name="state-au" data-eform="Australian State::1"> 

獲取數據,我們使用

var eform = $("#state-au").data("eform"); 

要插入,我們使用

$("#state-au").data("eform", "Australian State::1"); 
+0

謝謝你的帖子山姆。這聽起來是一種很好的做事方式。不幸的是,在這種情況下(因爲MODx eform片段),我無法將eform =更改爲data-eform =,因爲它無法讀取data-eform =。乾杯 – user3643520

相關問題