2012-12-15 116 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