Jquery .find () возвращает неопределенное в таблице - PullRequest
1 голос
/ 10 марта 2020

Я пытаюсь сделать цену за единицу, количество, таблицу общей цены. Если я использую таблицу, я не могу получить значения количества. Однако, если я не использую какие-либо таблицы, это работает, и я получаю количественные значения.

Коды таблиц (таблица. php):

<table border="1"; width="100px"; cellpadding="0"; cellspacing="0";>
<tr>
<td align="center"><b>NO</b></td>
  <td align="center"><b>UNIT PRICE</b></td>
  <td align="center"><b>QTY</b></td>
  </tr>

Код калькулятора:


<h3>ATT:<h3>

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Proforma</title>
  <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
  <script>
  $(function(){
    $("#click").click(function(){
      $("div").each(function(index,element){
        var a = $(element).find(".quantity").val();
        alert (a);
      });

    })

  });  
  </script>

<style>
a{
  text-decoration:none;
}
input {
  text-align:center
}
</style>
</head>
<body>

<?php $arr = [1,2] ?>
    <?php foreach($arr as $key => $val){ ?>
<div class="prices">

  <tr>
    <td align="center"><?php echo $key; ?></td> 
    <td><input class="unitprice"; type="text"; style="width:80px"></td>
    <td><input class="quantity"; type="text"; style="width:80px"; value= "100"></td>
    <td><input class="totalprice"; type="text"; style="width:80px"></td>

  </div>

</tr>
<?php } ?>

</table>

<input id="click"; type="submit"; value="click";>

</body>
</html>

Калькулятор предупреждает меня о количестве, однако, если я добавлю table.php в начале калькулятора, он вернется как неопределенный.

В чем может быть проблема?

1 Ответ

1 голос
/ 10 марта 2020

Во-первых, у вас неправильно размещены теги div и tr, посмотрите на них. Сделайте так, чтобы они выглядели как <div><tr>...</tr></div>.

Во-вторых, вы можете указать if statement как:

if ($(element).find(".quantity").hasClass("quantity")){
    var a = $(element).find(".quantity").val();
    alert (a);
}

$(function(){
    $("#click").click(function(){
      $("tr").each(function(index,element){
        if ($(element).find(".quantity").hasClass("quantity")){
          var a = $(element).find(".quantity").val();
          alert (a);
        }
      }); 
    }) 
});  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<thead>
<tr>
  <td align="center"><b>NO</b></td>
  <td align="center"><b>UNIT PRICE</b></td>
  <td align="center"><b>QTY</b></td>
</tr>
</thead>
<tbody>
  <tr class="prices"> 
<td align="center">1</td>
<td><input class="unitprice" type="text" style="width:80px"></td>
<td><input class="quantity" type="text" style="width:80px" value="110"></td>
<td><input class="totalprice" type="text" style="width:80px"></td>
 
  </tr>
  <tr class="prices"> 
<td align="center">2</td>
<td><input class="unitprice" type="text" style="width:80px"></td>
<td><input class="quantity" type="text" style="width:80px" value="130"></td>
<td><input class="totalprice" type="text" style="width:80px"></td>
 
  </tr>
</tbody>
</table>
  <input id="click" type="submit" value="click">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...