2010-12-02 3 views
1

ユーザーが行をクリックできる場所、つまり<tr>の機能を実装しようとしています。特定のURLに移動します。ここでjquery find input:サファリの隠れたエラー

は私のHTMLとjQueryコードです:

   <tbody> 

        <tr> 
         <input class="threadid_c" id="threadID" name="threadID" type="hidden" value="MzAwMTYwLDMwMDM3Miw=" /> 
         <td> 
          ... 
     </tr> 
        <tr> 
         <input class="threadid_c" id="threadID" name="threadID" type="hidden" value="MzAwMzcyLDMwMDM4MCw=" /> 
         <td> 
      .... 

     $('#datatable tr').click(function() { 
      var x = $(this).find("input:hidden"); 
      var url = "/User/Ping/" + x.val(); 
      location.href = url; 
     }); 

これはクロム、Firefox、およびIEで正常に動作します。しかしSafariでは、x.val()undefinedを返します。それが問題に関連しています

<input> is not allowed inside <tr>. Inserting <input> before the <table> instead. 

わからない場合:私はSafariのJavaScriptコンソールに見えた

は、私はこのメッセージが表示されます。助言がありますか?

答えて

1

あなたはこのように、代わりに最初<td>内側に押し込め、それが言うだけのよう直接<tr>子として<input>を持つことはできません。

<tr> 
    <td> 
    <input class="threadid_c" name="threadID" type="hidden" value="MzAwMzcyLDMwMDM4MCw=" /> 
    .... 

それが繰り返されていますので、またid属性を削除。..それらはページ内で一意でなければなりません。

+0

ありがとう、それは間違いなく私の部分の脳のおならでした – Dean