我有一个简单的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>
j查询 :
$(document).ready(
function() {
$("input[id='s.street']").keyup(function() {
$('#b.street').val($(this).val());
});
});
我在控制台日志中没有收到任何错误。
如果元素必须具有该确切 id,请使用:
$('#b\.street')
ID 应该是唯一的,因此您不必使用输入标签进行过滤。 此外,您需要在 ID 名称的.
之前添加转义序列。 $('#s\.street')
是正确的选择器。 我实际上建议不要使用.
...
您的 ID 名称与 jquery 选择器语法冲突。
为元素定义 id 时,请勿使用 # . 或 ID 中的任何空格
您的命名约定有问题。 将名称中的.
替换为连字符。
所以:
<input type="text" size="50" value="" id="s.street">
成为
<input type="text" size="50" value="" id="s-street">
然后你选择jquery,如下所示:
$("#s-street");
Sizzle(jQuery实现的javascript选择器库)会将s.street
视为具有s.street
street
类的元素s
或b
从这里: HTML 中 id 属性的有效值是什么? 看起来jQuery在带有句点和冒号的ID方面遇到了问题。 因此,请尝试删除这些内容,看看它是否有效。