jquery / css获取按列排序的表中的元素而不是行

时间:2016-05-09 05:40:09

标签: jquery css

我有一个像这样的元素列表

1
2
3 6
4 7
5 8
9
10 

所有数字都是链接..如果我使用$("a")我收到订单

  

(1,2,3,6,4,7,5,8,9,10)

有一种简单的方法可以按列扫描表格吗?或者我需要在$("a")之前调换所有表格(我认为这不是最佳方式)

我需要用ajax打开所有链接

    method: 'GET',
    url: ARRAY,
    accept: 'text/xml',
    onreadystatechange: function (indexValue,css,css2,css3,urlFrom) {
        return function (response) {
            if (response.readyState != 4)
                return;
            chap = $(response.responseText).find(css)[0].innerHTML + (css.indexOf(",") != -1 ? $(response.responseText).find(css)[1].innerHTML : "");
            $("#page-"+(indexValue))[0].innerHTML = chap;
            $("#page-"+(indexValue)).find(css2).remove();
            if (css3 != "")
                $("#page-"+(indexValue)).find(css3).eq(0).prevAll().remove();
        }
    }(i,classCss,remCss,remblabla,location.href.replace("https://","http://")),

如果我没有得到正确的订单,页面的顺序就会变得混乱,所以是一团糟: - (

1 个答案:

答案 0 :(得分:0)

以下是column-major而不是row-major的示例。该脚本以反向顺序读取表,并将元素添加到2维数组中。



var maxColumn = 0;
var invert = [];

$("#yourTable tr").each(function() {
  $(this).find("td").each(function(index) {
    if (index + 1 > maxColumn) maxColumn = index + 1;
  });
});

for (var i = 0; i < maxColumn; i++) {
  for (var j = 0; j < $("#yourTable tr").size(); j++) {
    if ($("#yourTable tr").eq(j).find("td").eq(i).html() !== undefined) {
      if (invert[i] === undefined) invert[i] = [];
      invert[i][j] = $("#yourTable tr").eq(j).find("td").eq(i);
    }
  }
}

document.write("<p>Above gives : </p>");

for (var k = 0; k < invert.length; k++) {
  document.write("<br/>");
  for (var l = 0; l < invert[k].length; l++) {
    if (invert[k][l] !== undefined) {

      // You have a jQuery collection at this point so to access the link :
      var link = invert[k][l].find("a").eq(0).attr("href");
      document.write(link + " - ");
    }
  }
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="yourTable">
  <tr>
    <td><a href="link 5">5</a></td>
    <td><a href="link 6">6</a></td>
    <td><a href="link 7">7</a></td>
  </tr>
  <tr>
    <td><a href="link 1">1</a></td>
    <td><a href="link 2">2</a></td>
    <td><a href="link 3">3</a></td>
    <td><a href="link 4">4</a></td>
  </tr>
  <tr>
    <td><a href="link 8">8</a></td>
    <td><a href="link 9">9</a></td>
  </tr>
  <tr>
    <td><a href="link 10">10</a></td>
  </tr>
</table>
&#13;
&#13;
&#13;