jQuery如何检查链接是否以某个字符串开头

3

我在我的委托中有以下内容:
link_id是链接的ID。 我需要接下来说,如果该ID以RPwd开头,则执行某些操作。 为什么这种情况下^=不起作用?

    var link_id = $(this).attr('id');  //capture the id of the clicked link
    if (link_id ^= "RPwd") {

如果您正在使用jQuery 1.7+,您应该在这里使用.prop而不是.attr - mrtsherman
2个回答

3

^=选择器是jQuery对象选择器。您正在进行字符串比较,因此可以使用indexOf()

if (link_id.indexOf("RPwd") === 0) {
   // Match
}

为什么要使用 === 而不是 ==?它们有什么区别? - gdoron
2
@gdoron:=== 会比较类型和值,而 == 只会比较值。0 == '0'true,但是 0 === '0'false - gen_Eric
@Rocket,哪个更有效率? - gdoron
@gdoron:两者都没有更高的“效率”,但我建议使用=== - gen_Eric
@gdoron 这不是关于效率,而是关于正确性。如果你更快地得到了错误的答案,这真的重要吗? - JohnFx
显示剩余3条评论

2
据我所知,在JavaScript中,^=不是运算符。这可能是你的问题所在。
我认为你正在寻找的是:
if ($(this).is('[id^="RPwd"]')) {
}

1
link_id 在这里是一个字符串。您需要使用 $(this).is('[id^="RPwd"]') - gen_Eric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接