如何使用jquery遍历以前的兄弟元素而不是下一个兄弟元素?

时间:2014-12-09 04:04:01

标签: jquery

基于下面的HTML结构,jquery的每个函数都会循环遍历以下jquery代码,从id“startHere”开始,再到下一个兄弟,类名为

            $("#startHere").each(function(index, value)
            {
                alert$(this).text(index));
            });

           <tr><td class='above'><td></tr>
           <tr><td class='above'><td></tr>
           <tr><td class='above'><td></tr>
           <tr id='startHere'><td><td></tr>
           <tr><td class='below'><td></tr>
           <tr><td class='below'><td></tr>
           <tr><td class='below'><td></tr>
           <tr><td class='below'><td></tr>

如何让每个函数循环遍历前面的兄弟姐妹,其名称为“above”,从id“startHere”开始?

1 个答案:

答案 0 :(得分:0)

你可以尝试

&#13;
&#13;
var log = (function () {
    var $log = $('#log');
    return function (msg) {
        $('<p/>', {text: msg}).appendTo($log)
    }
})();

//set some content for the td
$('table td').text(function(i){return i;})


$("#startHere").prevAll().find('.above').each(function (index, value) {
    log($(this).text());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr><td class='above'></td></tr>
  <tr><td class='above'></td></tr>
  <tr><td class='above'></td></tr>
  <tr id='startHere'><td></td></tr>
  <tr><td class='below'></td></tr>
  <tr><td class='below'></td></tr>
  <tr><td class='below'></td></tr>
  <tr><td class='below'></td></tr>
</table>

<div id="log"></div>
&#13;
&#13;
&#13;