jquery属性indexOf

时间:2010-06-17 21:16:11

标签: asp.net jquery

当我获得自定义(Reporting Services)复选框的onclick属性时,它会给出正确的结果。但是,当我尝试在该结果上使用indexOf时,它说“对象不支持此属性或方法”,即这很好,给了我一个长字符串

$('input[id*=CustomCheckBox]').click(function()
{
      alert( $(this).attr("onclick") );


});

但这会产生错误(对象不支持此属性或方法):

$('input[id*=CustomCheckBox]').click(function()
{
     if ($(this).attr("onclick").indexOf("SomeString") > -1 )
     {
          //do some processing here

     }
}

我需要修改哪些内容才能indexOf正常运行?

2 个答案:

答案 0 :(得分:2)

我同意上面的Nick Carver,但是如果你仍然需要这样做,你只需要在尝试使用indexOf之前将属性转换为字符串。我在Safari中快速测试了它,它似乎按预期工作。

if (String($(this).attr("onclick")).indexOf("SomeString") > -1 )
 {
      //do some processing here

 }

答案 1 :(得分:2)

你可以使用onclick 事件本身,而不是效率最高的,但如果这是你唯一的选择......你会这样做:

$('input[id*=CustomCheckBox]').click(function() {
  if (this.onclick && this.onclick.toString().indexOf("SomeString") > -1 ) {
    alert('found!')
  } else {
    alert('not found :(');
  }
});

You can try a demo here