我有一个简单的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());
});
});
我在控制台日志中没有错误。
答案 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
视为元素s
或b
,其类为street
。而不是ID为s.street
的元素。
答案 5 :(得分:-3)
从这里开始:What are valid values for the id attribute in HTML?看起来jquery遇到有句号和冒号的ids有问题。所以尝试删除它们,看看它是否有效。