1

JQueryで、 idを使用せずにセレクター$('button')から要素に取得する方法を知りたいですか? <form>id を使用して取得する方法は知っていますが、どういうわけか上記の方法が必要です。

alert($('button').parent().prev().get(0).nodeName)私はそこに着いたことを意味するポップアップを試しFORMました。しかし、$('button').parent().prev().get(0).submit()or.serialize()または を使用しても.attr('name')機能しません。

構造は次のとおりです。10行あり<tr>......</tr>ます。

<table>
    <tr><form name='form' method='POST' autocomplete='on'>
    <td id='df'><button type='button'>Go</button></td>
    <td><input type='reset' value='Clear'/></td>
    <td><input name='date'</td>
    <td><input name='customer'</td>
    .......
    </tr>
</table>

トラバースの専門家なら誰でも教えてくれますか?? ありがとうございます=)

4

3 に答える 3

0

メソッドがノードを返すため、または.get()のようにjQueryメソッドを呼び出すことができないためだと思います。.submit().attr()

.get()取得できる要素は 1 つだけなので、name 属性を送信または取得する前にこのメソッドを使用する必要はないと思います。

$('button').parent().prev().attr('name')実際にあなたのフォームの名前を教えてくれます。

于 2012-11-15T05:00:43.860 に答える
0

htmlをこれに変更してから試してください。

<form name='form' method='POST' autocomplete='on'>
<table>
    <tr>
       <td id='df'><button type='button'>Go</button></td>
       <td><input type='reset' value='Clear'/></td>
       <td><input name='date'</td>
       <td><input name='customer'</td>
    .......
   </tr>
</table>
</form>
于 2012-11-15T04:55:26.460 に答える
0

次の HTML があります。

<table>
<tr><form name='form' method='POST' autocomplete='on'>
<td id='df'><button type='button'>Go</button></td>
.......
</tr>
</table>

これはあなたがそれが生み出すと思うものです:

<table>
  <tr>
    <form>
      <td>
        <button/>
      </td>
    </form>
  </tr>
</table>

次に$(...).closest('form')、おそらく望ましいトラバーサル方法です。

これは、Google Chrome が生成するものです。フォームを行キャプションとして扱います ( http://jsfiddle.net/UULtc/ ):

<table>
  <tr>
    <form/>
    <td>
      <button/>
    </td>
  </tr>
</table>

その後、フォームにアクセスできます$(...).closest('tr').find('form:first')が、フォームには意図した入力が含まれないため、注意してください。

HTML を変更する必要があります (行が 1 つしかない場合は、フォームを表で囲むだけです)。テーブルに固執する場合は、おそらく JavaScript も変更する必要があります。これはアイデアです(洗練されておらず、テストされていません):

$('table button').click(function(){
  $(this)
    .closest('table')
    .find('tr')
    .not($(this).closest('tr'))
    .find('input')
    .attr('disabled', 'disabled')
  ;
});
于 2012-11-15T04:54:31.590 に答える