Angular 使用文档选择其他li旁边的li元素。(属性)

Angular 使用文档选择其他li旁边的li元素。(属性),angular,typescript,Angular,Typescript,我正在使用一个名为bly.io的发布/订阅解决方案来订阅和发布实时值。 我设置它的方式是为ngFor中的每个列表分配一个动态id。这样我就可以识别正确的列表,以便从ably.io subscribe中分配值 document.getElementById(message.data.auctionId).innerHTML=“$”+message.data.lastBid 这很好用。我现在只需要访问它旁边的li,这样我就可以给它正确的值 目标是从bly.io中获取lastBidderName,并将

我正在使用一个名为bly.io的发布/订阅解决方案来订阅和发布实时值。 我设置它的方式是为ngFor中的每个列表分配一个动态id。这样我就可以识别正确的列表,以便从ably.io subscribe中分配值

document.getElementById(message.data.auctionId).innerHTML=“$”+message.data.lastBid

这很好用。我现在只需要访问它旁边的li,这样我就可以给它正确的值

目标是从bly.io中获取lastBidderName,并将其分配给dynamic auctionId listing,以便它也能实时更新,而不仅仅是在浏览器刷新时

为了让它工作,我需要在找到正确的auctionId之后访问名为lastBidderName的子元素类。然后我可以将message.data.lastbidername从bly.io分配给它

如何更改下面的第二个示例以正确访问子元素

channel.subscribe(message => {

  document.getElementById(message.data.auctionId).innerHTML =
    "$" + message.data.lastBid;

    document.querySelector(
    "message.data.auctionId > lastBidderName"
  ).innerHTML = message.data.lastBidderName;

});
html

  • 当前投标: ${{auction.currentBid}
  • 投标人: {{auction.lastBidderName}

  • 我建议您在这两个项目上都添加ID,如下所示

    <li>Current Bid:
        <span id="auction-{{auction.id}}" class="currentBid">
          ${{auction.currentBid}}
        </span>
    </li>
    <li>Bidder: 
        <span id="bidder-{{auction.id}}" class="lastBidderName">
           {{auction.lastBidderName}}
        </span>
     </li>
    
    还有一个问题


    为什么不更新动作对象?

    这真是太聪明了!现在可以用了,谢谢。我不知道你所说的动作对象是什么意思。如果您正在谈论将值发布到bly.io,则会在其他地方发生。@user6680我的意思是您可以找到id等于
    message.data.auctionId
    的操作,然后执行
    auction。currentBid=message.data.lastBid
    auction.lastBidderName=message.data.lastBidderName
    我想我可以。我正在阅读文档,并在其中一个Bly.io教程中找到了一个示例,该教程编写了document.getElementById.innerHtml。它似乎对我很有效,所以我从未考虑过其他解决方案lol@user6680让我创建一个简单的示例Sure。如果你想给我举个例子,我愿意接受其他的解决方案
    <li>Current Bid:
        <span id="auction-{{auction.id}}" class="currentBid">
          ${{auction.currentBid}}
        </span>
    </li>
    <li>Bidder: 
        <span id="bidder-{{auction.id}}" class="lastBidderName">
           {{auction.lastBidderName}}
        </span>
     </li>
    
    channel.subscribe(message => {
    
      document.getElementById(
    `auction-${message.data.auctionId}`).innerHTML =
        "$" + message.data.lastBid;
    
        document.getElementById(
       `bidder-${message.data.auctionId}`
      ).innerHTML = message.data.lastBidderName;
    
    });