OnClick не возвращает элемент нажал - PullRequest
0 голосов
/ 02 октября 2019

У меня есть таблица, которая появляется в диалоговом окне JqueryUI. Я хочу иметь возможность щелкнуть строку в таблице и получить информацию для заполнения в полях на главной странице. По какой-то причине, когда я нажимаю на что-либо, я продолжаю получать объекты "jquery ####", которые я не могу выбрать ни один из элементов таблицы, tr или td.

Я искал здесь и ничего не нашел оэти элементы. Было предложено использовать $ (this) .find ('td'), но это находит странный элемент, не являющийся частью моей таблицы.

{
    "0": {},
    "1": {},
    "2": {},
    "3": {},
    "4": {},
    "5": {},
    "length": 6,
    "prevObject": {
        "0": {
            "jQuery111003455579954774942": 76
        },
        "context": {
            "jQuery111003455579954774942": 76
        },
        "length": 1
    },
    "context": {
        "jQuery111003455579954774942": 76
    },
    "selector": "td"
}

Если я использую только это, я получу обратноследующий объект

{
    "0": {
        "jQuery111003455579954774942": 76
    },
    "context": {
        "jQuery111003455579954774942": 76
    },
    "length": 1
}

Моя основная таблица

<code><br><br>
<h4>Saved Addresses</h4>
<table id='results' border='1'>
  <thead>
    <tr>
      <th>Name</th>
      <th>Address</th>
      <th>City</th>
      <th>Prov</th>
      <th>Postal Code</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Test</td>
      <td>123 Test St</td>
      <td>Toronto</td>
      <td>ON</td>
      <td>A5A5A5</td>
      <td>
    </tr>
  </tbody>
</table>

Javascript для создания события клика

<script>

    $('#results tbody tr').click(function() {
      //get <td> element values here!!??
      loadShipper($(this).find('td'));
      //alert($(this).find('td'));
    });
//located on main page where I want to load the TD element information - right now dumping because the object is coming back strange
function loadShipper(obj){
    str = JSON.stringify(obj);
str = JSON.stringify(obj, null, 4); // (Optional) beautiful indented output.
console.log(str); // Logs output to dev tools console.
alert(str); // Displays output using window.alert()
</script>

Пока я могу получитьЭлемент TR или TD, получение информации легко. Я не уверен, почему событие click не находит фактическое значение TR или даже если я пытаюсь получить дочерние элементы, не находя элементы TD, которые я могу перебрать.

Создана Fiddle, дублирующая мою проблему https://jsfiddle.net/dv5ck2o9/

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

$ (this) .find ("td"). Text ()

было решением. Кажется, .text () требуется на основе элементов jquery, имеющих потомков, которые не найдены в JSON.stringify

Спасибо Joundill за ответ, что я не могу набрать

0 голосов
/ 02 октября 2019

Используйте $(this).find("td"), а не this.find("td")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...