Text/Javascript rowcount не работает, возвращает только 0

я использую laravel и javascript, и количество строк не считывает следующие переменные после первых переменных. то, что я пытаюсь сделать, это отправить несколько IP-адресов, и когда я проверяю его с помощью dd, он получает только первую переменную, а в «оповещении (rowCount); он возвращает ноль». пожалуйста помогите с этим спасибо..

это лезвие.php

</div>
        <div class = "row">
           <div class = "col-12 col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12 ">
                <h5 class = "text-truncate col-10 mt-3"> <span class = "fas fa-list-ol icons"></span> <b>Server Description</b></h5>
                <hr class = "col-11 col-xs-11 col-sm-11"></hr>
                <div class = "tbl_div row col-11 col-xs-11 col-sm-11 ">
                    <div class = "row col-2 col-xs-2 col-sm-2 col-md-3">
                        <a href = "#" class = "p-2" id = "addrow"><span class = "fas fa-plus"></span> ADD Source / Destination</a>
                    </div>  
                    <table class = "table table-hover table-responsive table-fw-widget " id = "tblItems" >
                        <thead class = "">
                            <td class = "col-md-1  text-center border-0">
                            <td class = "col-md-3 col-3 col-xs-3 col-sm-3 border-0">Source Servername</td>
                            <td class = "col-md-3 col-3 col-xs-3 col-sm-3 border-0">IP address</td>
                            <td class = "col-md-3 col-3 col-xs-3 col-sm-3 border-0">Destination Servername</td>
                            <td class = "col-md-3 col-3 col-xs-3 col-sm-3 border-0">IP address</td>
                        </thead>
                        <tbody>
                            <!-- @foreach(old('source_name', ['value']) as $fw_ip) -->
                                <tr>
                                    <td class = "col-md-1 text-center">
                                    <label class = "form-label" id = "row_no"><b>#1</b></label></td>
                                    <td class = "col-md-3">
                                        <!-- <label class = "form-label">Item</label> -->
                                        <input type = "text" name = "source_namex[]" class = "form-control">
                                    </td>
                                    <td class = "col-md-3">
                                        <!-- <label class = "form-label">Item</label> -->
                                        <input type = "text" class = "form-control text-center" name = "sourceip[]" maxlength = "15" value = "{{ old('sourceip.'.$loop->index) }}" placeholder = "xxx.xxx.xxx.xxx" pattern = "^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$">
                                    </td>
                                    <td class = "col-md-3">
                                        <!-- <label class = "form-label">Item</label> -->
                                        <input type = "text" name = "destname[]" class = "form-control" value = "{{ old('destname.'.$loop->index) }}">
                                    </td>
                                    <td class = "col-md-4">
                                        <!-- <label class = "form-label">Item</label> -->
                                        <input type = "text" class = "form-control text-center" name = "destip[]" maxlength = "15" value = "{{ old('destip.'.$loop->index) }}" placeholder = "xxx.xxx.xxx.xxx" pattern = "^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$">
                                    </td>
                                    <td class = "col-md-3">
                                        <center><span class = "fas fa-trash-alt fa-lg mt-2 icons removerow"></span></center>
                                    </td>
                                </tr>
                            <!-- @endforeach -->
                            </tbody>
                    </table>
                </div>
                <div class = "row">
                    <div class = "col-6 col-xs-6 col-sm-6 col-md-3 col-lg-3 col-xl-2 ">
                        <div class = "form-group">
                          <button type = "submit" class = "btn btn-allcard btn-block col-10">Submit</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

javascipt

<script type = "text/javascript">
  
    var rowCount = $("#tblItems tbody>td").length;
    var rowCount = ;
    alert(rowCount);
    $('.type').change(function()
    {
       
    });
    $('#addrow').click(function()
    {
        rowCount += 1;
        
        $("#tblItems tbody>tr:first").clone(true).insertAfter("#tblItems tbody>tr:last");
        $("#tblItems tbody>tr:last").attr("id", "tr"+rowCount);
        $("#tblItems tbody>tr:last #row_no").text("#"+rowCount);
        $("#tblItems tbody>tr:last #row_no").css('font-weight','bold');
        $("#tblItems tbody>tr:last :input").val("");
       
     
    });
    $('.removerow').click(function()
    {
        var id = $(this).closest('tr').attr('id')
        $('table#tblItems tr#'+id).remove();
        rowCount -=1;
    });


      
</script>

Что это var rowCount = ; там делает?

Gerardo Furtado 23.01.2023 04:01

я пытался начать счет строк с 1. это должно быть 1

Teris2 23.01.2023 04:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема связана с вашим селектором CSS, в частности с > в #tblItems tbody>td".

От MDN:

Дочерний комбинатор (>) помещается между двумя селекторами CSS. Он соответствует только тем элементам, которые соответствуют второму селектору и являются прямыми дочерними элементами элементов, соответствующих первому.

(выделено мной)

Это означает, что вы указываете jQuery возвращать все элементы <td>, которые являются прямыми дочерними элементами <tbody> в таблице с идентификатором #tblItems. Но таких прямых потомков нет, потому что все элементы <td> являются потомками <tr>.

Ваш селектор должен либо включать дочерний элемент <tr>, например:

$("#tblItems tbody>tr>td")

Или вообще обойтись без дочернего комбинатора (>):

$("#tblItems tbody td")

Обновлять

Я ошибочно предположил, что нужно было количество <td> элементов, потому что td был в селекторе. Я должен был уделить больше внимания тому факту, что используемое имя переменной называется «rowCount». Как указано @Win в комментариях, для выбора элементов <tr> селектор будет:

$("#tblItems tbody > tr")

Использование дочернего комбинатора (>) в этом случае допустимо, потому что все нужные нам элементы <tr> будут прямыми потомками <tbody>. Но важно понимать, что он будет работать одинаково хорошо и без >, если в <tr> нет вложенных <tbody>.

я пробую оба из них, но предупреждение (rowCount) возвращает 6

Teris2 23.01.2023 07:34

@Teris2 Teris2, если вы хотите подсчитать, сколько строк внутри tbody, попробуйте снова решение, описанное выше, но на этот раз посчитайте только TR ... $("#tblItems tbody tr").length;

Win 23.01.2023 09:24

@ Teris2: Извините, я неправильно понял, какой счет вы использовали. Я добавил обновление к своему ответу.

76484 23.01.2023 12:55

я хочу установить количество строк равным 1 без использования rowCount = 1;

Teris2 24.01.2023 04:17

@Teris2: Понятно. Опубликованный мной обновленный селектор — $("#tblItems tbody > tr") — вернет количество элементов <tr>, которые являются прямыми дочерними элементами <tbody>. Пока у вас есть один <tr>, это число будет 1. Вот пример: jsfiddle.net/76484/fqkrwoca

76484 24.01.2023 04:51

Другие вопросы по теме