我做错了什么?
我需要在这里获取最后4个字符
<div class="test">11/16/2001</div>
<script>
var lastfour = $(".test");
lastfour.substr(6);
</script>
努力让这一年到来。我知道我的语法很糟糕,但我只是在寻找最简单的解决方案。
谢谢!
答案 0 :(得分:4)
$(".test");
返回一个jquery对象,而不是一个字符串。您需要致电.text()
以获取文字。
此外,您还有一个额外的)
。
此代码还假设只有一个元素具有您关心的test
类。如果还有更多内容,请查看each
。
答案 1 :(得分:1)
如果是最后四个,最好的方法是使用负值,所以它将是(使用Sinetheta建议的固定变量):
<script>
var lastfour = $(".test").text().substr(-4);
</script>
此外,您的脚本中还有额外的)
lastfour.substr(6));
编辑(为后代):
IE中有一个错误,詹姆斯指出哪里负值返回整个字符串。这不适用于IE9。
但是slice()
函数也适用于IE,它也接受负值。
答案 2 :(得分:1)
这是否仅适用于mm / dd / yyyy格式的日期,如示例所示?
在这种情况下,这个解决方案(http://jsfiddle.net/TU4aF/)会更好。
var date = $(".test").text();
var splitDate = date.split('/');
var year = splitDate[2];
它可以处理个位数月和日。
答案 3 :(得分:1)
以下示例使用以下字符串。我使用了数字,因此很容易看到发生了什么。
var s = "1234567890";
从8日获取字符串中的所有字符(即start = 7,因为它基于零):
s.substr(7); // returns 890
从字符串中获取前两个字符:
s.substr(0, 2); // returns 12
从字符串中获取最后两个字符:
s.substr(-2); // returns 90
从第4个开始获取四个字符(即start = 3):
s.substr(3, 4); // returns 4567
如果start + length大于字符串中剩余的内容,则只包含字符串末尾的字符(显然没有其他内容可以提取),因此生成的字符串可能不是必须和你期待的一样长。下面的示例说明了这一点,其中传递的长度为20,但结果字符串的长度仅为4个字符:
s.substr(6, 20); // returns 7890
从头到尾获得两个从4开始的字符:
s.substr(-4, 2); // returns 78
String.substring(start,to)
String.substring()与String.substr()的工作方式略有不同,其中start和to位置作为参数而不是start和length传递。
答案 4 :(得分:0)
试试这个
<div class="test">11/16/2001</div>
<script>
var lastfour = $(".test").text();
lastfour.substr(-4);
</script>