0

当按钮输入字段的 id 包含“。”时,我无法使用 jQuery 更改按钮的值。句号。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
</head>

<body>
Hello this is a JQuery test page.
<input id="my.button" type="button" value="" />

    <script type="text/Javascript">     
        $( "#my.button" ).val("Check Available");
    </script>

</body>

</html>

但是,如果我替换 '.' 使用'_',它工作正常。我正在使用 jQuery 1.3.2(但我也看到了 jQuery 1.7.1 的这种行为)并且正在 Firefox 21.0 上运行这个 html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
</head>

<body>
Hello this is a JQuery test page.
<input id="my_button" type="button" value="" />

    <script type="text/Javascript">     
        $( "#my_button" ).val("Check Available");
    </script>

</body>

</html>

我在第一个代码片段中做错了什么,还是这是一个错误?

4

1 回答 1

2

你需要逃离那个时期\\

$( "#my\\.button" ).val("Check Available");

使用任何元字符(例如 !"#$%&'()*+,./:;<=>?@[]^ {|}~ ) as a literal part of a name, it must be escaped with with two backslashes:\`。例如,id="foo.bar ",可以使用选择器$("#foo\\.bar")

于 2013-06-07T07:43:42.953 回答