Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Интересная задачка с пробелами (https://javascript.ru/forum/misc/58557-interesnaya-zadachka-s-probelami.html)

hhh 28.09.2015 21:54

Интересная задачка с пробелами
 
Здравствуйте! Химичу свой велик значит. При клике удаляем ячейки, но как они удалятся меня не устраивает, остаются ненужные пробелы. Вопрос, если можно сделать регуляркой, на сколько она будет сложна?

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

  <script>
    $(function () {

     var table$ = $('table'),
         tableHtml$ = table$.html().replace(/</g, '&lt;').replace(/>/g, '&gt;'),
         result$ = $('#result'),
         btn$ = $('#btn');

    result$.html(
        '<pre>' + tableHtml$ + '</pre>'
      )

      btn$.on('click', function () {
        table$.find('td').last().remove();
        tableHtml$ = table$.html().replace(/</g, '&lt;').replace(/>/g, '&gt;');

        result$.html(
            '<pre>' + tableHtml$ + '</pre>'
          )

      });

    });
  </script>

</head>
<body>

<button id="btn" style="margin-bottom: 20px">removeer</button>

<table>
 <tbody>
   <tr>
     <td>lorem</td>
     <td>lorem</td>
     <td>lorem</td>
     <td>lorem</td>
   </tr>
 </tbody>
</table>

<div id="result"></div>

</body>
</html>

laimas 29.09.2015 00:11

$('table').empty() вместо всего этого безобразия, и не именуйте так table$, очень сложно читать.

hhh 29.09.2015 00:31

Цитата:

Сообщение от laimas
$('table').empty()

не подойдет
Цитата:

Сообщение от laimas
и не именуйте так table$, очень сложно читать

Наоборот, хорошим тоном считается именатовать ссылки на обернутый набор таким образом.

laimas 29.09.2015 00:57

Цитата:

Сообщение от hhh
не подойдет

Чем?

Цитата:

Сообщение от hhh
Наоборот, хорошим тоном считается именатовать ссылки на обернутый набор таким образом.

Даже так? И это при том, что jQuery по умолчанию использует этот символ? Хороший тон это - $table

sortarray 29.09.2015 01:06

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
 
<button id="btn" style="margin-bottom: 20px">remover</button>
 
<table id="t">
 <tbody>
   <tr>
     <td>lorem1</td>
     <td>lorem2</td>
     <td>lorem3</td>
     <td>lorem4</td>
   </tr>
 </tbody>
</table>
 
<div id="result"></div>

<script>

var copyToResult = function(){result.innerHTML = "<pre>" + t.innerHTML.replace(/</g, "&lt").replace(/>/g, "&gt") + "</pre>"}

var re = /(\r\n\s*\r\n)+|(\n\s*\n)+/g
var removeEmptyLines = function(){
  result.innerHTML = result.innerHTML.replace(re, function(s){if(/\r/.test(s)) return "\r\n"; return "\n"}) 
}

copyToResult()

btn.onclick = function(){
  var cols = t.querySelectorAll("td")
  if (!cols.length) return
  cols[cols.length - 1].remove()
  copyToResult()
  removeEmptyLines()
}


</script>
 
</body>
</html>

hhh 29.09.2015 11:41

Цитата:

Сообщение от laimas
Даже так? И это при том, что jQuery по умолчанию использует этот символ? Хороший тон это - $table

Я бы сам не придумал. Пишут сами авторы jquery. Лень копипастить, процитирую по памяти. Некоторые разработчики ставят доллар перед переменной, некоторые в конце. В примере было в конце, мне понравилось и я так делаю. Это как правша и левша)

hhh 29.09.2015 11:42

sortarray,
Спасибо вечером потесчу! Вижу что-то годное:)


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