Глядя, чтобы упростить добавление атрибута на основе текста родного брата - PullRequest
1 голос
/ 03 августа 2010

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

Вот первый проход, который работает:

$(function() {
  $("td.commandText pre").each(function(index) {
    $(this).parent().parent().prev().attr('Title', $(this).text());
  });
});

Есть идеичто более элегантно?

Вот пример таблицы HTML, с которой я работаю:

<code><table class="maingrid">
  <thead>
    <tr>
      <th>Session ID</th>
      <th>User Name</th>
      <th>Start Time</th>
      <th>End Time</th>
    </tr>
  </thead><tbody>
    <tr class="record">
      <td id="174">174</td>
      <td>user1</td>
      <td>8/2/2010 4:00:09 PM</td>
      <td></td>
  </tr>
  <tr>
     <td class="details hide commandText" colspan="4">
       <pre>Sample Text to show as a tooltip
no errors
175 user1 8/2/2010 4:00:09 PM
Sample Text to show as a tooltip
no errors

1 Ответ

1 голос
/ 03 августа 2010

Вы можете использовать .closest(), чтобы сделать его немного короче, например:

$(function() {
  $("td.commandText pre").each(function(index) {
    $(this).closest('tr').prev().attr('Title', $(this).text());
  });
});

Кроме этого, здесь не так уж много элегантности.

...