【问题标题】:List specific data from td value searching by data-bind列出通过数据绑定搜索的 td 值中的特定数据
【发布时间】:2021-04-04 15:16:02
【问题描述】:

对于 COVID,我们从我们的商店启动了一项送货计划。为了进行游览,我们从数据库中获取页面上的信息。但是为了实现最快的浏览,我们需要复制新页面上的每一行,这需要大量的工作。我们需要创建的列表如下所示:

Streetname 1 CITY {ORDERNUMBER}
Streetname 2 CITY {ORDERNUMBER}
Streetname 3 CITY {ORDERNUMBER}

我们通过复制每一行来做到这一点。这需要做很多工作,而我们可以自己生成列表。网页 HTML 如下所示:

            <table class="table table-framed">
                        <tbody data-bind="foreach: selectedTourNonDeletedShipments" id="sortable" class="ui-sortable" >
                            <tr>
                                <td id="orderNumber" style="width: 11%"><a data-dismiss="modal" href="ShipmentDetail" data-bind="text: orderNo, click: $root.onShipmentDetail.bind($data)">1151491332</a></td>
                                <td style="width: 9%" data-bind="text: zipcode">1234AB</td>
                                <td style="width: 13%" data-bind="text: city">Arnhem</td>
                                <td style="width: 17%" data-bind="text: deliveryAddress">Streetname 123</td>
                                <td style="width: 12%" data-bind="text: timeSlot">2020-12-27 09:00</td>
                                <td style="width: 8%" data-bind="text: weight">0.77</td>
                                <td style="width: 8%" data-bind="text: volume">0.01</td>
                                <td style="width: 5%"><button id="bRemoveTour" class="btn btn-secondary btn-sm" data-bind="click: function() { $root.clickRemoveSingleShipment($data) }">X</button></td>
                            </tr>
            <tr>
                <td>Same things again</td>
            </tr>
                        </tbody>
                    </table>

我的想法是使用带有 Javascript/jQuery 的 Google Chrome 控制台创建此列表。我的问题是如何从 javascript 中的特定数据绑定项中获取值。

示例:如何在 data-bind = "text: City" 处获取值 "Arnhem"。

<td style="width: 13%" data-bind="text: city">Arnhem</td>

我希望有人可以帮助我。非常感谢。

【问题讨论】:

    标签: javascript html jquery data-binding return-value


    【解决方案1】:

    您可以使用选择器,例如:'[data-bind="text: city"]' 或使用行内单元格的索引

    简单示例:

    $('tbody#sortable tr').each(function(){
       const $cells = $(this).children()
       const order = $cells.eq(0).text(),
             city = $cells.filter('[data-bind="text: city"]').text()
             
      console.log('Order:', order, ' City:',city )      
    
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <table class="table table-framed">
      <tbody data-bind="foreach: selectedTourNonDeletedShipments" id="sortable" class="ui-sortable">
        <tr>
          <td id="orderNumber" style="width: 11%"><a data-dismiss="modal" href="ShipmentDetail" data-bind="text: orderNo, click: $root.onShipmentDetail.bind($data)">1151491332</a></td>
          <td style="width: 9%" data-bind="text: zipcode">1234AB</td>
          <td style="width: 13%" data-bind="text: city">Arnhem</td>
          <td style="width: 17%" data-bind="text: deliveryAddress">Streetname 123</td>
          <td style="width: 12%" data-bind="text: timeSlot">2020-12-27 09:00</td>
          <td style="width: 8%" data-bind="text: weight">0.77</td>
          <td style="width: 8%" data-bind="text: volume">0.01</td>
          <td style="width: 5%"><button id="bRemoveTour" class="btn btn-secondary btn-sm" data-bind="click: function() { $root.clickRemoveSingleShipment($data) }">X</button></td>
        </tr>
        
      </tbody>
    </table>

    【讨论】:

    • 我只有从以下行获取数据时遇到问题:1151491332
    • 查看属性选择器文档api.jquery.com/category/selectors/attribute-selectors。您可以使用许多不同的运算符
    • 谢谢。嗯.. 我猜那是 jQuery,我发现它在控制台中不起作用。我会尝试一些东西。
    • 我从data-bind 猜测这可能是一个 knockout.js 应用程序。如果您可以访问用于绑定(渲染)这些元素的原始数据,将会简单得多
    • 不幸的是,我无法编辑 RAW 文件 (HTML),这是我们正在使用的外部网站。我只能从控制台获取项目以获取列表。你发送的东西很完美,很棒。我能够调整它以获得我需要的值和输出。只有 ordernummer 仍然是个问题。
    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 2018-05-08
    • 1970-01-01
    相关资源
    最近更新 更多