JQuery работает в консоли, но не в исходном коде

Я попытался использовать следующий код для добавления href в тег a внутри td. он работает нормально, пока я делаю в консоли. Но когда я пытаюсь сделать то же самое в своем коде, он не работает. Может ли кто-нибудь сказать мне причину?

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

Ответ 1

Используйте document.Ready()

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

Вы должны убедиться, что документ уже загружен, прежде чем пытаться манипулировать DOM.

Больше информации: http://api.jquery.com/ready/

Ответ 2

Элемент не существует, когда выполняется jquery. Вам нужно поставить свои обработчики в готовые функции.

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

$(function() {}); является сокращением для $(document).ready(function() {});

Ответ 3

JS запускается до создания html.

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

Ответ 4

поставьте его в готовом разделе:

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

Ответ 5

Ваш код выполняется до того, как DOM будет готов и элемент действительно существует, попробуйте его следующим образом:

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

Причина, по которой он работает на консоли, состоит в том, что элемент <a> уже существует при выполнении кода...

JSBin Demo

Ответ 6

Порядок файлов jQuery на главной странице макета также может повлиять на то, почему он не работает в реальном коде, а работает в консоли браузера. Ссылки на файлы jQuery должны указываться в следующем порядке на главной странице:

<script type="text/javascript" src="/Scripts/jquery-3.1.1.min.js"></script>      
<script type="text/javascript" src="/Scripts/jquery-ui-1.12.1/jquery-ui.min.js"></script> 
<script type="text/javascript" src="/Scripts/bootstrap.min.js"></script>

Для тех, кто приезжает сюда в поисках решения того, что написано в заголовке, не вдаваясь в подробности этого конкретного вопроса, надеюсь, он кому-нибудь поможет.