jQuery:如何识别ID包含点的元素?

时间:2013-08-24 04:28:41

标签: javascript jquery

这是我目前的代码:

jQuery(document).ready(function($) {
  $("#edit-name").change(function() {
    $("#Membership_UserName").val($(this).val());
  });
  $("#edit-pass-pass1").change(function() {
    $("#Membership_PassWord").val($(this).val());
  });
  $("#edit-pass-pass2").change(function() {
    $("#.Verify_Password").val($(this).val());
  });
});

一切正常,除了,用于更新ID为.Verify_Password的元素的值。这个原因对我来说非常明显(jQuery在看到#.彼此相邻之后感到困惑)但是这可能是错的......

无论如何,ID都无法更改,因为它被发送到远程端点,并且需要在此端匹配。

所以我的问题是:有没有办法告诉jQuery .Verify_Password是一个ID(而不是一个类)?

4 个答案:

答案 0 :(得分:2)

是的,你可以通过逃避它来做到这一点。

$('#\\.Verify_Password');

$("[id='.Verify_Password']")

答案 1 :(得分:1)

试试$("#\\.Verify_Password").val($(this).val()); 或阅读jQuery selector value escaping

答案 2 :(得分:1)

你应该双击它

 $("#\\.Verify_Password").val($(this).val());

检查此jQuery doc以获取更多信息,几个例子 -

// Does not work
$("#some:id")

// Works!
$("#some\\:id")

// Does not work
$("#some.id")

// Works!
$("#some\\.id")

答案 3 :(得分:1)

如果您指定选择器#,那么它将是ID,或者如果您指示选择器.,那么它将是CLASS

如果您不知道它是id还是类,请尝试

$("#edit-pass-pass2").change(function() {
    $("#\\.Verify_Password").val($(this).val());
});