我對這個主題做了很多研究,但沒有取得任何成功。jQuery prev在表格上無法正常工作
問題
當我試圖根據當時它不能正常工作的自定義屬性rowspanx
做rowspan
。
我如何根據rowspanx製作rowspan?
,所以我試圖找到以前的元素和下一個元素與prevAll
和nextAll
,如果我發現prevAll() > 1
比它應該工作,但它不能正常工作。它只適用於一次而不是第二次。
我得到意想不到的輸出。它在代碼片段中。
我的預期輸出如下。
編輯
我的邏輯是,如果當前元素td
有rowspanx==1
所以查詢應檢查其所有previous
或next
元素有rowspanx == 2
如果發現true
任何siblings elements
比目前td
加rowspan = 2
。
這是我的邏輯,但它不能正常工作。
需要幫助!
$('table.overview-table tr').each(function()
{
\t $($(this).find("*")).each(function(i)
\t {
\t \t if($(this).attr("rowspanx") == 1 && $(this).attr("rowspanx") != undefined && ($(this).prevAll().attr("rowspanx") > 1 || $(this).nextAll().attr("rowspanx") > 1)){
\t \t \t $(this).attr("rowspan","2");
\t \t }
\t });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table width="100" border="1" class="table overview-table">
<tr style="display: table-row;">
<th scope="row" class="" rowspan="2">10:00</th>
<td class="orange white" rowspan="1" rowspanx="2" style="height: 20px;">test</td>
<td class="grey white" rowspan="1" rowspanx="2" style="height: 20px;">test</td>
<td class="orange" rowspan="1" rowspanx="1" style="height: 20px;"></td>
<td class="orange" rowspan="1" rowspanx="1" style="height: 20px;"></td>
</tr>
<tr style="display: table-row;">
<td class="orange fat" rowspan="1" rowspanx="1" style="height: 20px;"></td>
<td class="grey fat" rowspan="1" rowspanx="1" style="height: 20px;"></td>
</tr>
</table>
爲什麼你在另一個jQuery對象包裝一個jQuery對象? '$($(本).find( 「*」))'。另外,這個'$(this).prevAll()。attr(「rowspanx」)'沒有意義,因爲'.prevAll()'返回一個** DOM節點**集合,並且它們的屬性不能全部訪問一旦。 – Terry
@Terry那麼我怎樣才能達到我的預期產出? –
什麼是精確的單元跨越邏輯?:在jquery腳本中,如果以前具有屬性'rowspanx = 2',則編碼在此處,則下一個單元跨越兩行。 OK,第三個單元格的屬性爲'rowspanx = 2',第四個單元格跨越兩行。第五個不是,因爲前一個沒有屬性'rowspanx = 2'。 – sbrbot