Javascript 如何从具有数据id属性的表行中获取数据?

Javascript 如何从具有数据id属性的表行中获取数据?,javascript,jquery,Javascript,Jquery,我有html表格: <table data-role="table" data-mode="columntoggle:none" class="ui-responsive ui-table"> <thead> <tr></tr> </thead> <tbody> <tr> <td style="vertical-align: i

我有html表格:

<table data-role="table" data-mode="columntoggle:none" class="ui-responsive ui-table">
    <thead>
        <tr></tr>
    </thead>
    <tbody>
        <tr>
            <td style="vertical-align: inherit;text-align:center;">
                <label for="">...</label>
            </td>
            <td style="text-align:center;">
                <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset">
                    <input type="text" id="propFieldName" value="..">
                    </div>
                </td>
            </tr>
                <tr data-id="">
                <td style="vertical-align: inherit;text-align:center;">
                    <label for="">numerItem</label>
                </td>
                <td style="text-align:center;">
                    <div class="ui-select">
                        <div id="select-48-button" class="ui-btn ui-icon-carat-d ui-btn-icon-right ui-corner-all ui-shadow">
                            <span>001</span>
                            <select>
                                <option value="">001</option>
                                <option value="">002</option>
                            </select>
                        </div>
                    </div>
                </td>
            </tr>
            <tr data-id="5075">
                <td style="vertical-align: inherit;text-align:center;">
                    <label for="">diametr</label>
                </td>
                <td style="text-align:center;">
                    <div class="ui-select">
                        <div id="select-48-button" class="ui-btn ui-icon-carat-d ui-btn-icon-right ui-corner-all ui-shadow">
                            <span>6</span>
                            <select>
                                <option value="">3</option>
                                <option value="">4</option>
                                <option value="">6</option>
                            </select>
                        </div>
                    </div>
                </td>
            </tr>
            <tr data-id="5076">
                <td style="vertical-align: inherit;text-align:center;">
                    <label for="">multi</label>
                </td>
                <td style="text-align:center;">
                    <div class="ui-select">
                        <div id="select-49-button" class="ui-btn ui-icon-carat-d ui-btn-icon-right ui-corner-all ui-shadow">
                            <span>no</span>
                            <select>
                                <option value="">yes</option>
                                <option value="">no</option>
                            </select>
                        </div>
                    </div>
                </td>
            </tr>
        </tbody>
    </table> 
我的问题是如何从表中仅获取具有数据id属性和值(即值不为空)的行,以及如何从这些行的范围中获取文本?

您可以使用将属性与
:not()关联的
TR
作为目标,以排除空值

然后
.map()
获取本机数组

var arr = $('tr[data-id]:not([data-id=""])').map(function() {
  return {
    id: $(this).data('id'),
    value: $(this).find('span').text()
  };
}).get();
var arr=$('tr[data id]:not([data id=”“])).map(function(){
返回{
id:$(this).data('id'),
值:$(this.find('span').text()
};
}).get();
控制台日志(arr)

...
数字项
001
001
002
直径
6.
3.
4.
6.
多种
不
对
不
您可以使用将属性与
:not()关联的
TR
作为目标,以排除空值

然后
.map()
获取本机数组

var arr = $('tr[data-id]:not([data-id=""])').map(function() {
  return {
    id: $(this).data('id'),
    value: $(this).find('span').text()
  };
}).get();
var arr=$('tr[data id]:not([data id=”“])).map(function(){
返回{
id:$(this).data('id'),
值:$(this.find('span').text()
};
}).get();
控制台日志(arr)

...
数字项
001
001
002
直径
6.
3.
4.
6.
多种
不
对
不
函数btnClick(){
常量数据=[];
const$rows=$(“#table tr[data id]”);
for(设i=0;i<$rows.length;i++){
设obj={};
const$row=$($rows[i]);
obj[“id”]=$row.data(“id”);
obj[“value”]=$row.find('span').text();
数据推送(obj);
}
console.log(数据)
}

...
数字项
001
001
002
直径
6.
3.
4.
6.
多种
不
对
不
获取数据
函数btnClick(){
常量数据=[];
const$rows=$(“#table tr[data id]”);
for(设i=0;i<$rows.length;i++){
设obj={};
const$row=$($rows[i]);
obj[“id”]=$row.data(“id”);
obj[“value”]=$row.find('span').text();
数据推送(obj);
}
console.log(数据)
}

...
数字项
001
001
002
直径
6.
3.
4.
6.
多种
不
对
不
获取数据
$('#getData')。单击(函数(){
$(“#myTable tr[data id]”)。每个(函数(){
var idval=$(this.attr('data-id');
var mydata=[];
如果(idval!=''&&idval!=未定义)
{
var cat=$(this).children('td:nth child(2')).children('div:nth child(1')).children('div:first child').children('span').text();
push({“id”:idval,“value”:cat});
}
console.log(mydata);
});
});

...
数字项
001
001
002
直径
6.
3.
4.
6.
多种
不
对
不
var result = [];
$('.ui-table tr').each(function(){
    if(typeof $(this).data('id') != undefined && $(this).data('id') != '' && $(this).find('span').text().trim() != ''){
        var obj = {}
        obj.id = $(this).data('id');
        obj.value = $(this).find('span').text();
        result.push(obj); 
    }
});