2010-08-03 4 views
1

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

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

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

Любые идеи, чтобы сделать это более изящным?

Вот пример HTML таблицы Я работаю с:

<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</pre></td> 
    </tr> 
    <tr> 
    <td class="details hide" colspan="4" style="color:red"><pre>no errors</pre></td> 
    </tr> 
    <tr class="record"> 
     <td id="175">175</a></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</pre></td> 
    </tr> 
    <tr> 
    <td class="details hide" colspan="4" style="color:red"><pre>no errors</pre></td> 
    </tr> 
</tbody> 
</table> 
+0

@Felix - Я думаю, он просто объяснял рассуждения о том, как это происходит, а не о том, что это проблема с текущим кодом :) –

+0

@Nick: ah ok ... –

ответ

1

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

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

Кроме того, есть не намного больше элегантности, чтобы получить здесь.

 Смежные вопросы

  • Нет связанных вопросов^_^