Jquery Selector选项稍作修改

时间:2012-04-16 17:34:55

标签: c# jquery asp.net ajax json

我正在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但我怎么能这样做?

请帮帮我

4 个答案:

答案 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 {}
        });
    });
});

参考速度:

jQuery .hasClass() vs .is()