Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выполнение скрипта после нажатия на кнопку (https://javascript.ru/forum/misc/83232-vypolnenie-skripta-posle-nazhatiya-na-knopku.html)

ddro3doff 20.10.2021 13:54

Выполнение скрипта после нажатия на кнопку
 
Есть кнопка с атрибутом, который должен передаваться в js который подсчитывает сумму.
Вот пример http://jsfiddle.net/pdjonux3/
Если заполняю так
Код:

$('#linkHref tr').each(function(){
не работает
если выполняю так
Код:

$('#fikl tr').each(function(){
, то работает
Что я делаю не так?
<a class="content_toggle" href="#"onclick="mufunk(this);" data-filter="fikl"> <li class="button all-i" type="submit"  data-filter="fikl" tabindex="-1">Фиркл</li></a>
 
  <table id="fikl">
  <tr>
    <td>7</td>
  </tr>
    <tr>
    <td>7</td>
  </tr>

</table>

<div id="res" style="font-weight:bold"></div>

function mufunk(element){
      var linkHref = $(element).attr('data-filter');
	  var sum = 0;
  $('#linkHref tr').each(function(){
      sum+=parseInt($('td', this).text());
  });
  $('#res').html(sum);
    }

рони 20.10.2021 15:49

ddro3doff,
$('#' + linkHref + ' tr').each

ddro3doff 21.10.2021 15:24

Спасибо. А не подскажите как вывести среднее арифметическое ?

рони 21.10.2021 15:58

ddro3doff,
:-?
sum/$('#' + linkHref + ' tr').length

рони 21.10.2021 16:15

ddro3doff,
на всякий случай ...
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        #res {
            font-weight: bold;
        }
    </style>
</head>
<body>
    <a class="content_toggle" href="#" onclick="mufunk(event,this);" data-filter="fikl">
        Фиркл    </a>
    <table id="fikl">
        <tr>
            <td>2</td>
        </tr>
        <tr>
            <td>7</td>
        </tr>
    </table>
    <div id="res" style=""></div>
    <script>
        function mufunk(event, element) {
            event.preventDefault();
            let id = `#${element.dataset.filter}`, sum = 0,
            { length } = tds = document.querySelectorAll(`${id} td`);
            tds.forEach(({ textContent }) => sum += +textContent);
            document.querySelector('#res').innerHTML = (sum / length).toFixed(2)
        }
    </script>
</body>
</html>


Часовой пояс GMT +3, время: 00:31.