我想获取我的td
的文本,但出现此错误:$tds[2].text is not a function
。
console.log('td',$tds[2])
的结果是:
$(document).ready(function() {
$trs = $('table > tbody > tr')
// console.log('trs',$trs)
var items = []
for (var $i = 0; $i < $trs.length; ++$i) {
$tds = $trs[$i].cells
console.log('td', $tds[2].text())
var item = {}
item['label'] = ''
item['flag'] = ''
item['value'] = ''
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="tmain" dir="rtl" width="90%" border="0" align="center" id="Table8">
<tbody>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="mer_name" checked=""></td>
<td>نام فروشگاه</td>
<td><input type="checkbox" name="rep_col" value="terminal_id"></td>
<td>کد ترمينال</td>
<td><input type="checkbox" name="rep_col" value="terminal_name"></td>
<td>نام ترمينال</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="log_date" checked=""></td>
<td>تاريخ ارسال</td>
<td><input type="checkbox" name="rep_col" value="log_time" checked=""></td>
<td>زمان ارسال</td>
<td><input type="checkbox" name="rep_col" value="getpoint_date" checked=""></td>
<td>تاريخ خريد</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="getpoint_time" checked=""></td>
<td>زمان خريد</td>
<td><input type="checkbox" name="rep_col" value="card_id" checked=""></td>
<td>شماره کارت</td>
<td><input type="checkbox" name="rep_col" value="name_pr"></td>
<td>نام دارنده کارت</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="device_type"></td>
<td>نوع پنل</td>
<td><input type="checkbox" name="rep_col" value="amount" checked=""></td>
<td>مبلغ</td>
<td><input type="checkbox" name="rep_col" value="currency_" checked=""></td>
<td>واحد</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="point_rate" checked=""></td>
<td>ضريب لويالتی</td>
<td><input type="checkbox" name="rep_col" value="point_lo" checked=""></td>
<td>امتياز</td>
<td><input type="checkbox" name="rep_col" value="doc_type" checked=""></td>
<td>نوع پرداخت</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="cheque_num"></td>
<td>شماره چک</td>
<td><input type="checkbox" name="rep_col" value="cheque_date"></td>
<td>تاريخ چک</td>
<td><input type="checkbox" name="rep_col" value="account_number"></td>
<td>شماره حساب</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="bank_type"></td>
<td>نام بانک</td>
<td><input type="checkbox" name="rep_col" value="branch_code"></td>
<td>شعبه</td>
<td><input type="checkbox" name="rep_col" value="approval_code"></td>
<td>کد خريد اعتباری</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="rebate_cons_per" checked=""></td>
<td>درصد کارمزد </td>
<td><input type="checkbox" name="rep_col" value="special_discount"></td>
<td>درصد تخفيف</td>
<td><input type="checkbox" name="rep_col" value="pos_setup_rebate"></td>
<td>درصد کارمزد بانی POS</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="bin_setup_rebate"></td>
<td width="33%">درصد کارمزد پشتيبان</td>
<td><input type="checkbox" name="rep_col" value="merch_setup_rebate"></td>
<td width="33%">درصد کارمزد بازارياب</td>
<td><input type="checkbox" name="rep_col" value="merch_setup"></td>
<td width="33%">بازارياب</td>
</tr>
<tr height="25">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="mer_id">
</td>
<td>کد فروشگاه</td>
<td><input type="checkbox" name="rep_col" value="bin_code">
</td>
<td>کد پشتيبان</td>
<td><input type="checkbox" name="rep_col" value="bin_name"></td>
<td>نام پشتيبان</td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
安德里亚斯是正确的。 将对象更改为这样的jQuery对象。
$tds = $($trs[$i].cells);
或者(可能效率太低)。
console.log('td',$($tds[2]).text());
或使用普通js
console.log('td',$tds[2].innerText);
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/innerText
答案 1 :(得分:0)
$tds[2]
返回HTMLDom object
,要使用jquery方法,它必须是Jquery
对象。因此,将$ tds [2]与{{$ tds [2])之类的$()
包装在一起。
$(document).ready(function() {
$trs = $('table > tbody > tr')
// console.log('trs',$trs)
var items = []
for (var $i = 0; $i < $trs.length; ++$i) {
$tds = $trs[$i].cells
//console.log('td', $tds[2].text())
console.log('td', $($tds[2]).text())
var item = {}
item['label'] = ''
item['flag'] = ''
item['value'] = ''
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="tmain" dir="rtl" width="90%" border="0" align="center" id="Table8">
<tbody>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="mer_name" checked=""></td>
<td>نام فروشگاه</td>
<td><input type="checkbox" name="rep_col" value="terminal_id"></td>
<td>کد ترمينال</td>
<td><input type="checkbox" name="rep_col" value="terminal_name"></td>
<td>نام ترمينال</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="log_date" checked=""></td>
<td>تاريخ ارسال</td>
<td><input type="checkbox" name="rep_col" value="log_time" checked=""></td>
<td>زمان ارسال</td>
<td><input type="checkbox" name="rep_col" value="getpoint_date" checked=""></td>
<td>تاريخ خريد</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="getpoint_time" checked=""></td>
<td>زمان خريد</td>
<td><input type="checkbox" name="rep_col" value="card_id" checked=""></td>
<td>شماره کارت</td>
<td><input type="checkbox" name="rep_col" value="name_pr"></td>
<td>نام دارنده کارت</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="device_type"></td>
<td>نوع پنل</td>
<td><input type="checkbox" name="rep_col" value="amount" checked=""></td>
<td>مبلغ</td>
<td><input type="checkbox" name="rep_col" value="currency_" checked=""></td>
<td>واحد</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="point_rate" checked=""></td>
<td>ضريب لويالتی</td>
<td><input type="checkbox" name="rep_col" value="point_lo" checked=""></td>
<td>امتياز</td>
<td><input type="checkbox" name="rep_col" value="doc_type" checked=""></td>
<td>نوع پرداخت</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="cheque_num"></td>
<td>شماره چک</td>
<td><input type="checkbox" name="rep_col" value="cheque_date"></td>
<td>تاريخ چک</td>
<td><input type="checkbox" name="rep_col" value="account_number"></td>
<td>شماره حساب</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="bank_type"></td>
<td>نام بانک</td>
<td><input type="checkbox" name="rep_col" value="branch_code"></td>
<td>شعبه</td>
<td><input type="checkbox" name="rep_col" value="approval_code"></td>
<td>کد خريد اعتباری</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="rebate_cons_per" checked=""></td>
<td>درصد کارمزد </td>
<td><input type="checkbox" name="rep_col" value="special_discount"></td>
<td>درصد تخفيف</td>
<td><input type="checkbox" name="rep_col" value="pos_setup_rebate"></td>
<td>درصد کارمزد بانی POS</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="bin_setup_rebate"></td>
<td width="33%">درصد کارمزد پشتيبان</td>
<td><input type="checkbox" name="rep_col" value="merch_setup_rebate"></td>
<td width="33%">درصد کارمزد بازارياب</td>
<td><input type="checkbox" name="rep_col" value="merch_setup"></td>
<td width="33%">بازارياب</td>
</tr>
<tr height="25">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="mer_id">
</td>
<td>کد فروشگاه</td>
<td><input type="checkbox" name="rep_col" value="bin_code">
</td>
<td>کد پشتيبان</td>
<td><input type="checkbox" name="rep_col" value="bin_name"></td>
<td>نام پشتيبان</td>
</tr>
</tbody>
</table>
答案 2 :(得分:0)
将textContent用于DOM节点,$("td",this).eq(2).text()
用于jQuery单元格
这是使用jQuery的方法。不建议您像以前那样混合使用DOM和jQuery,这很明显的原因是您会感到困惑并使用错误的访问方法
$(function() {
var items = []
$('table > tbody > tr').each(function() {
var thirdCell = $("td", this).eq(2).text()
items.push({
"whatever": thirdCell,
'label': '',
'flag': '',
'value': ''
})
})
console.log(items)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="tmain" dir="rtl" width="90%" border="0" align="center" id="Table8">
<tbody>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="mer_name" checked=""></td>
<td>نام فروشگاه</td>
<td><input type="checkbox" name="rep_col" value="terminal_id"></td>
<td>کد ترمينال</td>
<td><input type="checkbox" name="rep_col" value="terminal_name"></td>
<td>نام ترمينال</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="log_date" checked=""></td>
<td>تاريخ ارسال</td>
<td><input type="checkbox" name="rep_col" value="log_time" checked=""></td>
<td>زمان ارسال</td>
<td><input type="checkbox" name="rep_col" value="getpoint_date" checked=""></td>
<td>تاريخ خريد</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="getpoint_time" checked=""></td>
<td>زمان خريد</td>
<td><input type="checkbox" name="rep_col" value="card_id" checked=""></td>
<td>شماره کارت</td>
<td><input type="checkbox" name="rep_col" value="name_pr"></td>
<td>نام دارنده کارت</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="device_type"></td>
<td>نوع پنل</td>
<td><input type="checkbox" name="rep_col" value="amount" checked=""></td>
<td>مبلغ</td>
<td><input type="checkbox" name="rep_col" value="currency_" checked=""></td>
<td>واحد</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="point_rate" checked=""></td>
<td>ضريب لويالتی</td>
<td><input type="checkbox" name="rep_col" value="point_lo" checked=""></td>
<td>امتياز</td>
<td><input type="checkbox" name="rep_col" value="doc_type" checked=""></td>
<td>نوع پرداخت</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="cheque_num"></td>
<td>شماره چک</td>
<td><input type="checkbox" name="rep_col" value="cheque_date"></td>
<td>تاريخ چک</td>
<td><input type="checkbox" name="rep_col" value="account_number"></td>
<td>شماره حساب</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="bank_type"></td>
<td>نام بانک</td>
<td><input type="checkbox" name="rep_col" value="branch_code"></td>
<td>شعبه</td>
<td><input type="checkbox" name="rep_col" value="approval_code"></td>
<td>کد خريد اعتباری</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="rebate_cons_per" checked=""></td>
<td>درصد کارمزد </td>
<td><input type="checkbox" name="rep_col" value="special_discount"></td>
<td>درصد تخفيف</td>
<td><input type="checkbox" name="rep_col" value="pos_setup_rebate"></td>
<td>درصد کارمزد بانی POS</td>
</tr>
<tr height="30">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="bin_setup_rebate"></td>
<td width="33%">درصد کارمزد پشتيبان</td>
<td><input type="checkbox" name="rep_col" value="merch_setup_rebate"></td>
<td width="33%">درصد کارمزد بازارياب</td>
<td><input type="checkbox" name="rep_col" value="merch_setup"></td>
<td width="33%">بازارياب</td>
</tr>
<tr height="25">
<td width="3%"> </td>
<td><input type="checkbox" name="rep_col" value="mer_id">
</td>
<td>کد فروشگاه</td>
<td><input type="checkbox" name="rep_col" value="bin_code">
</td>
<td>کد پشتيبان</td>
<td><input type="checkbox" name="rep_col" value="bin_name"></td>
<td>نام پشتيبان</td>
</tr>
</tbody>
</table>
答案 3 :(得分:0)
$tds[2]
是DOM节点,而不是jQuery对象,因此应这样做
$(document).ready(function() {
$trs = $('table > tbody > tr')
// console.log('trs',$trs)
var items = []
for (var $i = 0; $i < $trs.length; ++$i) {
$tds = $trs[$i].cells
console.log('td', $($tds[2]).text())
var item = {}
item['label'] = ''
item['flag'] = ''
item['value'] = ''
}
});
答案 4 :(得分:-2)
您应该像这样将$tds[2]
封装在jquery中:$($tds[2])
,以便在其上调用.text()
。
这里是示例:
$( document ).ready(function() {
$trs = $('table > tbody > tr')
// console.log('trs',$trs)
var items = []
for(var $i=0 ; $i < $trs.length ; ++$i){
$tds = $trs[$i].cells
console.log('td',$($tds[2]).text())
var item = {}
item['label'] = ''
item['flag'] = ''
item['value'] = ''
}
});