onclick defined text-var возвращает emptystring в журнале

var listname=$(this).parents(".x-grid3-row-table").children(".x-grid3-cell-inner.x-grid3-col-1").text();
console.log(listname);

console.log возвращает следующее:

(an empty string)

вы можете мне помочь, почему listname пусто? и не могли бы вы также рассказать мне, как передать имя list как параметр серверному методу в Ext.Ajax.request?

это html-код, исходящий из моей сгенерированной страницы:

<table class="x-grid3-row-table>
  <tr>
   <td class="x-grid3-col x-grid3-cell x-grid3-td-1 " tabindex="0" style="text-align: left;width: 265px;">
     <div class="x-grid3-cell-inner x-grid3-col-1" unselectable="on">[email protected]</div>
   </td>
   <td class="x-grid3-col x-grid3-cell x-grid3-td-2 x-grid3-cell-last " tabindex="0" style="width: 59px;">
      <div class="x-grid3-cell-inner x-grid3-col-2" unselectable="on">
        free
       </div>
   </td>
  </tr>
  <tr class="x-grid3-row-body">
  <!-- 7 Elements Markup down, who all act wrapping for the following -->
    <div class="details">
      <!-- some other markup elements, who also contain data, but are not further interesting-->
      <td class="data"> foo bar detail data </td><!-- not of interest-->
      <td class="edit"><input value="edit" onclick="see function on top" type="button" /> </td>
    </div>
  </tr>
</table>

Цель состоит в извлечении: [email protected] и передать его в качестве параметра server-method. метод должен сделать окно, но это совсем другая история.

вызов onclick происходит из тела расширенной панели сетки, которое обернуто в таблицу ('. x-grid3-row-table') с данным html-кодом.

0
@ geoffrey.mcgill Проблема заключается в том, как вызывать эти события с помощью кнопки html в шаблоне row-expander?
добавлено автор Vogel612, источник
@ geoffrey.mcgill, что намного проще. до сих пор я думал, что вам придется добавить кнопки вручную ... спасибо, что это помогает
добавлено автор Vogel612, источник
Трудно точно сказать, какие ваши требования здесь, но вам не нужно использовать какой-то сумасшедший селектор CSS или сканирование dom, чтобы получить эту информацию. Данные доступны в Магазине, который связан с GridPanel. Вы можете прослушивать любое количество событий GridPanel, таких как выбор строки или выбор ячейки | клик. Это событие будет включать доступ к Магазину.
добавлено автор geoffrey.mcgill, источник
Если вы предоставите воспроизводимый образец Ext.NET, демонстрирующий ваш сценарий, я уверен, что смогу предложить некоторые предложения. Возможно, использование CommandColumn было бы лучше, см. examples.ext.net/#/ GridPanel/Команды/Row_Command
добавлено автор geoffrey.mcgill, источник

2 ответы

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

Чтобы выбрать элемент с более чем одним именем класса, селектор не должен иметь пробела между именами классов как .classname1.className2 .

var listname=$(this).parents(".x-grid3-row-table").children(".x-grid3-cell-inner.x-grid3-col-1").text();
console.log(listname);

должно сработать.

Further clarification: If you have space between class names as in question it would mean that you are trying to select an element having .x-grid3-col-1 class within .x-grid3-cell-inner class. Which is parent child relationship.

<Сильный> Edit:

Если ваша кнопка находится в следующей строке, вы можете использовать .prev() селектор jQuery с комбинацией использования tr как родительский селектор, а не таблица.

<Код> имя_списка = $ (это) .parents ( "тр") Prev() детей (»х-Таблица3-клеточно-inner.x-Таблица3-Col-1" ). Текст ();...

Или, если он находится в одной строке, тогда просто

имя_список = $ (это) .parents ( "тр") дети (»х-Таблица3-клеточно-inner.x-Таблица3-Col-1" ). Текст ();..

2
добавлено
Вы хотите извлечь все текстовые значения «.x-grid3-cell-inner.x-grid3-col-1» или только тот, который был нажат в той же строке? Удаление пространства должно работать с html, который вы предоставили до сих пор.
добавлено автор HMR, источник
спасибо, но, к сожалению, это еще не исправило ... Я все еще пытаюсь применить это полностью
добавлено автор Vogel612, источник
@HMR последний. я включил некоторую дополнительную разметку, в то время как вся разметка была бы слишком большой. и если бы я хотел достичь первого, тогда я мог бы просто выбрать $ (". x-grid3-col-1.x-grid3-cell-inner")
добавлено автор Vogel612, источник
@FaisalSayed замечательно. это исправило это, но не спросите меня, почему, потому что я не знаю ...
добавлено автор Vogel612, источник
@ Vogel612 Я отредактировал свой ответ в соответствии с моим пониманием вопроса. Дайте мне знать, если это сработает для вас.
добавлено автор Faisal Sayed, источник

Там может быть более чистый способ сделать это, но я придумал это как ваш обработчик нажатия кнопки, он предполагает, что текст (), который вы ищете, представляет собой одну строку таблицы вверх от кнопки.

    var $rows,button=this,i;
    $rows=$(".x-grid3-row-table tr");
    for(i=0;i<$rows.length;i++){
       //get the button of that row
       //not sure how to as your button is not
       //in a table row with the code you posted
        if($rows[i].getElementsByTagName("input")[0]===
          button){
            break;
        }
    }
   //I assume the button is in a row before the button
    console.log($($rows[i-1])
        .find(".x-grid3-cell-inner.x-grid3-col-1")
        .text()
0
добавлено
Мне очень хотелось бы угадать, как кнопки связаны с информацией в строке таблицы, но может быть проще, если вы просто скажете нам.
добавлено автор HMR, источник
жаль вам сказать, но это, конечно, не единственные строки, это одна строка массива строк, каждая из которых имеет такую ​​«коллекцию». кнопка действительно не в таблице, и, к сожалению, у меня нет средств для изменения html-разметки, поэтому ваш ответ может быть правильным в какой-то другой проблеме, но здесь он не работает :(
добавлено автор Vogel612, источник
черт возьми, я не включил это в разметку ... извините. кнопки являются дочерним элементом td с последующим братом данных. но сама строка - это сетка и, следовательно, единственный дочерний элемент с сочетанием двух классов в селекторе jQuery children с родительской таблицей x-grid3-row-table. эта родительская таблица генерируется один раз на запись в определенной базе данных, которая также включает в себя дополнительные данные, которые записываются в подробности
добавлено автор Vogel612, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

All That JS
All That JS
417 участник(ов)

JS на русском

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)