2012-12-15 117 views
3

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

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()); 

        }); 
}); 

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

+1

'$(“#b.street”)'说找我的元素与“B”的标识,它也必须有一类“街”。阅读关于jQuery选择器的文档。 –

回答

-3

从这里:What are valid values for the id attribute in HTML?它看起来像jQuery有与有时间和冒号IDS麻烦。所以请尝试删除它们,看看它是否有效。

+1

该引用正确表示该ID对'.'有效,所以虽然不是一个好主意,但它不是实际问题。 – shaun5

+0

“正如在其他回复中指出的那样,jQuery在包含句号和冒号的id方面存在问题。”来自参考。 – kennypu

0

您的ID与jQuery选择语法名称冲突。

当定义一个元素不使用#的ID。或者您的ID

0

内的任何空间你有你的命名约定的一个问题。将名称中的.替换为连字符。

所以:

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

变为

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

,你喜欢用jQuery选择在这样:

$("#s-street"); 
4

如果元件必须有确切的ID,使用:

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

+1。这工作:http://jsfiddle.net/zLVCB/2/ – nnnnnn

0

Sizzle(jQuery实现的javascript选择器库)将会看到s.street作为sb的一个元素,street的类。而不是id为s.street的元素。

2

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

+0

绝对..如果可能摆脱的..或‘年’是美国人称它为(29岁我叫上了一个句号的时候依然轻笑“”一段时间)。 – qooplmao