我有一个包含tr和tds的表,我在第三个td中显示售票百分比。每当我写“ Mytext”而不是数字并计算错误时,我的代码都会出现问题,而且它显示无穷而不是显示写百分比。如何定义td是否具有“ mytext”而不是number,在出售列中设置最接近的数字而不是该文本,然后计算?例如,如果在可用列中有Mytext,而在出售列中有5个替换为text,然后计算 ?
这是我的代码:



$('table tbody tr').each(function() {
  var $this = this,
    td2Value = $('td:nth-child(2)', $this).text().trim().split(/\D+/);

  $('span.result', $this).each(function (index, element) {
    let v = $('td:nth-child(1)', $this).text().trim().split(/\D+/);
    $(element).html(Math.round((td2Value[index] * 100 / v[index]) || 0) + '%');
  });
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<table border="1">
             <thead>
                <tr>
                  <th> avalable</th>
                  <th> sold</th>
                  <th>  result </th>
                </tr>
            </thead>
<tbody>
<tr>
<td>
Mytext<br>
10<br/>
</td>
<td>
5<br/>
2<br/>
</td>
<td>
<span class="result"></span><br/>
<span class="result"></span><br/>
</td>
</tr>
</tbody>
</table>

最佳答案

删除available列中的正则表达式编号,然后检查值是否等于Mytext进行更改



$('table tbody tr').each(function() {
  var $this = this,
    td2Value = $('td:nth-child(2)', $this).text().trim().split(/\D+/);

  $('span.result', $this).each(function (index, element) {
    //change starts here
    let v = $('td:nth-child(1)', $this).text().trim().split(/\r?\n/);
    if(v[index] != null && v[index].trim() == "Mytext")
    {
       v[index] = td2Value[index];
    }
    if(v[index] != null )
    {
      $(element).html(Math.round((td2Value[index] * 100 / v[index]) || 0) + '%');
    }
    //change ends here
  });
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<table border="1">
             <thead>
                <tr>
                  <th> avalable</th>
                  <th> sold</th>
                  <th>  result </th>
                </tr>
            </thead>
<tbody>
<tr>
<td>
Mytext<br>
10<br/>
</td>
<td>
5<br/>
2<br/>
</td>
<td>
<span class="result"></span><br/>
<span class="result"></span><br/>
</td>
</tr>
</tbody>
</table>

关于javascript - 两个数字的百分比,并在另一个td中显示最终结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46752778/

10-14 17:31
查看更多