jQuery Length方法和IE7

时间:2011-04-15 21:35:50

标签: jquery

if (($(this)[0].value[$(this)[0].value.length - 1] == 'A' || $(this)[0].value[$(this)[0].value.length - 1] == 'P') && collFormat == 18) {
    $(this)[0].value = $(this)[0].value + 'M';
}

我有一个jquery脚本将'M'附加到时间字符串,例如:'xxx A'到'xxx AM'。该脚本适用于IE8,IE9,Firefox,但在兼容模式和IE 7中不起作用。在兼容模式下,IE7和浏览器中未定义$(this)[0] .value [0]。请提供替代解决方案。

提前感谢。

2 个答案:

答案 0 :(得分:0)

您无法在IE中使用[n]从字符串中获取单个字符。 相反,您应该致电charAt

this.value.charAt(this.value.length - 1)

答案 1 :(得分:0)

我认为你正在寻找这样的东西:

$(this).val(function(i, oldVal) { // set the element's value to the return value of this function
    var lastChar = oldVal.substr(-1); // get the last character of the current value

    return oldVal + // have the original value with something added
               (
                   (lastChar == 'A' || lastChar == 'P') && collFormat == 18) ? // if this is the case
                   'M' : // add an M
                   '' // otherwise, add an empty string
               );
});