我今天刚开始使用JQuery.Ajax,并希望尝试使用相同的脚本为多个'a href'标签使用相同模板的名称:
如果我有'a href tags'的列表示例:
<a href='#modalbox' id="modalboxUpdateStaff$id1">Some Text</a>
<a href='#modalbox' id="modalboxUpdateStaff$id2">Some Text</a>
<a href='#modalbox' id="modalboxUpdateStaff$id3">Some Text</a>
我希望他们运行脚本:
$('#modalboxUpdateStaff').click(function () {
$.ajax({
type: "POST",
url: "Default.aspx/GenerateStaffPositionModalHtml",
data: "{staffID: 1}",
contentType: "application/json",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#myCustomModalBody").text(msg.d);
}
});
});
我传入
的地方$ id
的值
进入我的剧本
数据:“{staffID:id}”
我该怎么做?
答案 0 :(得分:2)
在标记上使用class
和data-*
属性会更有意义:
<a href="#modalbox" class="modalboxUpdateStaff" data-id="$id1">Some Text</a>
<a href="#modalbox" class="modalboxUpdateStaff" data-id="$id2">Some Text</a>
<a href="#modalbox" class="modalboxUpdateStaff" data-id="$id3">Some Text</a>
或者如果您只想发送值1,2,3,...:
<a href="#modalbox" class="modalboxUpdateStaff" data-id="1">Some Text</a>
<a href="#modalbox" class="modalboxUpdateStaff" data-id="2">Some Text</a>
<a href="#modalbox" class="modalboxUpdateStaff" data-id="3">Some Text</a>
然后使用类选择器和.data()
方法来读取id的值:
$('.modalboxUpdateStaff').click(function () {
var id = $(this).data('id');
$.ajax({
type: "POST",
url: "Default.aspx/GenerateStaffPositionModalHtml",
data: JSON.stringify({ staffID: id }),
contentType: "application/json",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#myCustomModalBody").text(msg.d);
}
});
});
另请注意,我已使用JSON.stringify
来确保发送到服务器的data
参数的正确JSON编码。
答案 1 :(得分:1)
首先,您的选择器不起作用,但您可以匹配href。然后传递id。如下:
$('a[href="#modalbox"]').click(function () {
var id = this.id.replace('modalboxUpdateStaff$id', '');
$.ajax({
type: "POST",
url: "Default.aspx/GenerateStaffPositionModalHtml",
data: {staffID: id},
contentType: "application/json",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#myCustomModalBody").text(msg.d);
}
});
});
答案 2 :(得分:0)
除了Derek&amp;达林的出色答案,我想补充一点。只是为了简化操作,您可以将id
存储在元素的id中,并使用类来引用所有标记:
<a href="#modalbox" class="modalboxUpdateStaff" id="1">Some Text</a>
<a href="#modalbox" class="modalboxUpdateStaff" id="2">Some Text</a>
<a href="#modalbox" class="modalboxUpdateStaff" id="3">Some Text</a>
因此,在您的ajax
电话中,您可以使用
$('.modalboxUpdateStaff').click(function () {
//var id = $(this).data('id');
var id= this.id;
$.ajax({
type: "POST",
url: "Default.aspx/GenerateStaffPositionModalHtml",
data: JSON.stringify({ staffID: id }),
contentType: "application/json",
dataType: "json",
success: function (msg) {
// Replace the div's content with the page method's return.
$("#myCustomModalBody").text(msg.d);
}
});
});
我觉得这会比使用data
更快,并保存更多代码,所以在这里你去了:)