有人能解释一下jQuery / Javascript中看似不一致吗? (尾部括号不一致)

时间:2010-02-18 03:33:07

标签: asp.net javascript jquery

因此,在我的下面的示例中,“InputDate'”是输入类型=文本,“DateColumn”是表中具有“DateColumn”类的TD。

阅读谨慎的texbox的值:

var inputVal = $('#InputDate').val();

读取表格中div的值....

这有效:

$('#theTable .DateColumn').each(function() {
  var rowDate = Date.parse($(this)[0].innerHTML);
});

这不是:

$('#theTable .DateColumn').each(function() {
  var rowDate = Date.parse($(this)[0].innerHTML());
});

区别是innerHTML之后的“()”。从文本框中读取值以及如何从div读取值时,此行为在语法上似乎不一致。我很乐意,有时候,根据控件的类型,必须阅读.val vs .innerHTML vs.whateverElseDependingOnTheTypeOfControl ......但是这个例子让我相信我现在还必须记住我是否需要在每个属性上使用尾随括号/方法

所以对于像我这样对jQuery / Javascript来说相对较新的人......我似乎已经找到了这个特殊的异常,在这个例子中,但是有一个我错过的约定,或者是一个人必须记住每种方法是否需要括号?

2 个答案:

答案 0 :(得分:2)

innerHTML是javascript,是元素的属性。如果您想坚持使用jQuery版本的服务,请使用html()

$('#theTable .DateColumn').each(function() {
  var rowDate = Date.parse($(this).html() );
});

修改:对您的疑虑进行更多说明。 jQuery的语法非常一致。基本上,您找到的大多数方法都允许通过调整传递给方法的参数来进行读/写访问。

var css = $('#element').css('color'); // read the color of the element
$('#element').css('color', 'red'); // set the color to "red"

var contents = $('#element').html(); // grab the innerHTML of the element
$('#element').html('Hello World'); // set the innerHTML of this element

答案 1 :(得分:1)

.innerHTML是元素的属性而不是方法。

  

属性引用示例:object.MyProperty

     

方法示例:object.SomeFunction();