我有一个脚本正在解析表到json。
它像这样工作得很好
<thead id="itemspecthead" class="itemspectheadc">
<tr>
<th class="ishead isheadname">Name</th>
<th class="ishead isheadvalue">Value</th>
</tr>
</thead>
使用脚本逻辑:
var headers = [];
$(rows.shift()).find('th:first:not(:empty), th:nth-child(2):not(:empty)').each(function () {
headers.push($(this).text().toLowerCase());
});
但是试图对我的表格进行样式化,我在表格标题中添加了几行。
<thead id="itemspecthead" class="itemspectheadc">
<tr><td colspan="2" class="tdheader"><span>Item Specifics:</span></td></tr>
<tr><td colspan="2" class="speccaption"><span>(Generated from Unique Values from All Listings)</span><br /></td></tr>
<tr>
<th class="ishead isheadname">Name</th>
<th class="ishead isheadvalue">Value</th>
</tr>
</thead>
如果我删除了我的thead中的两个额外行,则脚本运行正常。
似乎错误在这个逻辑.find('th:first:not(:empty), th:nth-child(2):not(:empty)')
我已尝试将其更改为.find('th.ishead:first:not(:empty),
和.find('.ishead th:first:not(:empty),
,以便通过类名找到它而没有运气。
如何定位ishead
行,同时在colspan="2"
中保留额外的thead
行?
这是我的onclick函数,现在正在返回name,value,name,value
(由于某种原因重复两次......)。这就是我的整个点击功能脚本,我删除了其他所有内容。
$(document).on('click', '#editjson', function() {
var headers = [];
$('th.ishead:not(:empty)').each(function () {
headers.push($(this).text().toLowerCase());
});
alert('headers: ' + headers);
console.log(headers);
});
返回name,value,name,value
...
答案 0 :(得分:1)
将:not(:empty)
直接应用于所有th
(不是任何特定的一个)
如下所示: -
$(rows.shift()).find('th.ishead:not(:empty)').each(function () {
headers.push($(this).text().toLowerCase());
});
工作样本: -
$(document).ready(function(){
var headers = [];
$('th.ishead:not(:empty)').each(function () {
headers.push($(this).text().toLowerCase());
});
console.log(headers);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<thead id="itemspecthead" class="itemspectheadc">
<tr><td colspan="2" class="tdheader"><span>Item Specifics:</span></td></tr>
<tr><td colspan="2" class="speccaption"><span>(Generated from Unique Values from All Listings)</span><br /></td></tr>
<tr>
<th class="ishead isheadname">Name</th>
<th class="ishead isheadvalue">Value</th>
</tr>
</thead>
</table>
&#13;