13

次のコードを試して、td 内の a タグに href を追加しました。コンソールで実行している間は正常に動作しています。しかし、自分のコードで同じことをしようとすると、うまくいきません。誰でも理由を教えてもらえますか?

<script>
    $("table tbody tr td a").attr('href','http://www.google.com');
 </script>
<table>
    <tr>
        <td><a >Hai</a></td>
    </tr>
</table>
4

7 に答える 7

19

document.Ready() を使用

$(document).ready(function() {
    $("table tbody tr td a").attr('href','http://www.google.com');
});

DOM を操作する前に、ドキュメントが既に読み込まれていることを確認する必要があります。

詳細: http://api.jquery.com/ready/

于 2013-07-15T17:33:52.760 に答える
7

jquery の実行時に要素が存在しません。ハンドラーを準備完了関数内に配置する必要があります。

<script type="text/javascript">
$(function() {
    $("table tbody tr td a").attr('href','http://www.google.com');
});
</script>

$(function() {});の省略形です$(document).ready(function() {});

于 2013-07-15T17:33:48.607 に答える
6

HTMLが作成される前にJSが起動しています。

<table>
    <tr>
        <td><a >Hai</a></td>
    </tr>
</table>
<script>
    $(function() {
        $("table tbody tr td a").attr('href','http://www.google.com');
    });
 </script>
于 2013-07-15T17:34:17.523 に答える
4

DOM の準備が整い、要素が実際に存在する前にコードが実行される場合は、次の方法で試してください。

 <script>
    $(document).ready(function(){
      $("table tbody tr td a").attr('href','http://www.google.com');
    });
 </script>

コンソールで機能する理由は<a>、コードを実行するときに要素が既に存在するためです...

JSBin Demo

于 2013-07-15T17:34:09.460 に答える
4

準備ができているセクションに入れます:

<script type="text/javascript">
$(document).ready(function() {
 $("table tbody tr td a").attr('href','http://www.google.com');
});
</script>
于 2013-07-15T17:33:46.067 に答える