jQuery没有使用id查找元素

时间:2012-12-15 03:40:08

标签: javascript jquery html

我有一个简单的HTML表单,由于某些原因,jQuery无法找到我正在寻找的元素。

HTML:

    <form id="form">
                            <fieldset>
                    <table>
                        <tr class="row">
                            <td class="label">Street</td>
                            <td class="field"><input type="text" size="50" value="" id="s.street"></td>
</tr>
</table>
</fieldset>
        <fieldset>
                        <tr class="row">
                            <td class="label">Street</td>
                            <td class="field"><input type="text" size="50" value="" id="b.street"></td>
</tr>
</table>
</fieldset>
        </form>

jQuery:

$(document).ready(
                function() {

                    $("input[id='s.street']").keyup(function() {
                    $('#b.street').val($(this).val());

                    });
});

我在控制台日志中没有错误。

6 个答案:

答案 0 :(得分:4)

如果元素具有该确切的id,请使用:

$('#b\\.street')​

答案 1 :(得分:2)

ID应该是唯一的,因此您不必使用输入标记进行过滤。此外,您需要在ID名称的.之前添加转义序列。 $('#s\\.street')是正确的选择器。我实际上建议不要使用. ...

答案 2 :(得分:0)

你的id名称与jquery选择器语法冲突。

定义元素的id时,请不要使用#。或您身份证件中的任何空格

答案 3 :(得分:0)

您的命名约定存在问题。将名称中的.替换为连字符。

所以:

<input type="text" size="50" value="" id="s.street">

变为

<input type="text" size="50" value="" id="s-street">

然后用jquery选择,如:

$("#s-street");

答案 4 :(得分:0)

Sizzle(jQuery实现的javascript选择器库)会将s.street视为元素sb,其类为street。而不是ID为s.street的元素。

答案 5 :(得分:-3)

从这里开始:What are valid values for the id attribute in HTML?看起来jquery遇到有句号和冒号的ids有问题。所以尝试删除它们,看看它是否有效。