Получить первый тд текст для удаления элементов в массиве localstorage - PullRequest
0 голосов
/ 31 мая 2018

В настоящее время я работаю над проектом, чтобы построить тележку в местном хранилище.Все работает, кроме удаления элементов в локальном хранилище на основе заданных значений.

Я создаю динамическую таблицу, используя массив в локальном хранилище.Код таблицы:

    <table id="response">
    <tbody>
    <tr><td>prova</td><td>40</td><td><button class="myID" 
    onclick="deleteRow(this)">X</button></td></tr>
    <tr><td>test</td><td>30</td><td><button class="myID" 
    onclick="deleteRow(this)">X</button></td></tr>
    </tbody>
    </table>

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

   function deleteRow(r) {
   var arr = JSON.parse(localStorage.getItem('item')); 

   var value = jQuery(r).find("td:first").text;

   for (var k in arr) {
   var name = arr[k].name ;
   if (name === value) {

    arr.splice(k, 1);

    localStorage.setItem("item", JSON.stringify(arr));
     }
   else {
    alert('falso');
    }
   }   
  var i = r.parentNode.parentNode.rowIndex;
  document.getElementById("response").deleteRow(i);
   }

Проблема должна заключаться в значении переменной var, поскольку, если я назначу ему заданное значение (например, «test»), функция удалит соответствующий элемент в массиве localstorage.

Спасибо за вашепомощь!

1 Ответ

0 голосов
/ 31 мая 2018

Синтаксическая ошибка в селекторе jQuery, который вы используете для получения текста: ...find('td:first').text;

Это должно быть: ...find('td:first').text();

Вот быстрая скрипка с использованием той же самой разметки таблицы и небольшого обработчика щелчков, который получает всю строку, например, функцию deleteRow(), просто для устранения неполадок.При правильном вызове text() он записывает текстовое значение в консоль, как и следовало ожидать.

$(document).ready( function($) {
	$('#response tr').on('click', function(e) {
  	console.log($(this).find("td:first").text());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="response">
    <tbody>
    <tr><td>prova</td><td>40</td><td><button class="myID">X</button></td></tr>
    <tr><td>test</td><td>30</td><td><button class="myID">X</button></td></tr>
    </tbody>
    </table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...