我正在asp.net中开发一个讨论面板,我在其中使用带有两个类的jquery选择器选项
$("#plblDisAgreeProblem", "plblDisAgreeComment").click(function(){
var str = {
problemID: $("#problemID").val(),
empID : $("#empID").val(),
commentID : -1
}
$.ajax({
type: "GET",
url: "<%= Url.Action("GetStatus", "Discussion") %>",
data: str,
error: function(msg){
alert("error2" + msg);
},
success: function (msg) {
var out = msg.split("<br/>");
if (out[1] == "DisAgree: True")
{
alert("You are already disagree to this problem.");
}
else
{
}
});
})
我想如果div的类是'plblDisAgreeProblem'那么在JSon中注释ID应该是-1,如果div的类是'plblDisAgreeComment'那么在JSon的注释ID应该是this.id但我怎么能这样做?
请帮帮我
答案 0 :(得分:1)
使用这是()函数:
commentID : $(this).is(".plblDisAgreeProblem") ? -1 : this.id
我相信这应该有效(无法从我现在的位置进行测试)。
答案 1 :(得分:1)
首先让我们修复类选择器中的缺失点。见下文,
$("#plblDisAgreeProblem", ".plblDisAgreeComment").click(function(){
然后你可以使用hasClass函数来检查被点击的元素是否来自指定的类..见下文,
var str = {
problemID: $("#problemID").val(),
empID : $("#empID").val(),
commentID : -1
}
if ($(this).hasClass('plblDisAgreeComment') {
str.commentID = this.id;
}
我们不需要else if of ('plblDisAgreeProblem')
,因为它默认为-1。
答案 2 :(得分:0)
$("#plblDisAgreeProblem", ".plblDisAgreeComment").click(function(e) {
....
....
if(this.className == 'plblDisAgreeComment') {
str.commentID = this.id;
} else {
// do other
}
......
......
});
缺少类选择器的点(。)
答案 3 :(得分:0)
这应该可以解决问题:(修复了一些语法错误)
$("#plblDisAgreeProblem", ".plblDisAgreeComment").click(function() {
var str = {
problemID: $("#problemID").val(),
empID: $("#empID").val(),
commentID: $(this).hasClass('plblDisAgreeComment') ? this.id : -1
};
$.ajax({
type: "GET",
url: "<%= Url.Action("GetStatus", "Discussion") %>",
data: str,
error: function(msg) {
alert("error2" + msg);
},
success: function(msg) {
var out = msg.split("<br/>");
if (out[1] == "DisAgree: True") {
alert("You are already disagree to this problem.");
} else {}
});
});
});
参考速度: