当前位置: 首页 > 知识库问答 >
问题:

访问下拉列表的DOM元素

潘嘉佑
2023-03-14

我有一个下拉列表,我使用它来允许用户建立到后端的查询参数。

然后,用户将单击一个按钮,我将访问用户在下拉列表中设置的值,以调用后端endpoint。

<div className="wrappers">

<div className="timeFrameLabel label">Time Frame: </div>  
<select ref="timeFrame" className="timeFrameDropdown dropdown">
   <option>1m</option>
   <option>5m</option>
   <option>15m</option>
   <option>30m</option>
   <option>1h</option>
   <option>4h</option>
   <option>1d</option>
</select> 
</div>
<Button className="goButton" onClick={this.getBacktestData}>
                Get Data
</Button>
getBacktestData = async() => {
        const { 
            symbol,
            binSize,
            startTime,
            endTime,
        } = this.state;
        var quantity = document.querySelector(".quantityDropdown select")[document.querySelector(".quantityDropdown select").selectedIndex].innerHTML;

        console.log(this.refs.asset.select)
        console.log(this.refs.timeFrame)
        console.log(this.refs.amount)


        return await fetch("http://localhost:3001/backtest/getdata", {
            method: 'POST',
            body: JSON.stringify({symbol:symbol, binSize: binSize, startTime:startTime, endTime:endTime}), // data can be `string` or {object}!
            headers:{
                'Content-Type': 'application/json'
            }
        })
        .then(res => res.json())
        .then(response => console.log(response))
        .catch(error => console.error('Error:', error))
    }

任何帮助或提示都是非常欢迎的。

共有1个答案

郎诚
2023-03-14

下面是访问select值的惯用方法,而不必使用DOM。

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = { selected: null };
  }

  handleChange = e => {
    this.setState({ selected: e.target.value });
  };

  getBacktestData = async () => {
    const { selected } = this.state;
    // Do something with the selected value
  };

  render() {
    return (
      <React.Fragment>
        Selected: {this.state.selected}
        <select value={this.state.selected} onChange={this.handleChange}>
          <option value="1m">1m</option>
          <option value="5m">5m</option>
          <option value="15m">15m</option>
          <option value="30m">30m</option>
          <option value="1h">1h</option>
          <option value="4h">4h</option>
          <option vlaue="1d">1d</option>
        </select>
      </React.Fragment>
    );
  }
}
 类似资料:
  • 我可以通过以下方式访问dev中的用户名: 有没有其他方法可以通过webdriver访问ShadowDOM元素?

  • 有没有可能用蟒蛇硒在阴影DOM中找到元素? 示例用例: 我用输入了这个

  • 增加下拉列表在到按钮上,确保 data-activates 属性匹配 <ul> 标签的 id,你可以增加分隔线通过 <li class="divider"></li> 标签。 <!-- Dropdown Trigger --> <a class='dropdown-button btn' href='#' data-activates='dropdown1'>单击我</a> <!-- D

  • 我正在编写一个jQuery插件,它需要能够在iframe中针对DOM元素运行。我现在只是在本地测试这个(即url是file://.../example.html),在Chrome中,我一直按“安全错误:未能从”htmliframeElement“中读取”内容文档“属性:阻止一个来源为”null“的框架访问跨来源的框架。”在Safari中,我只得到一个空文档。 如果父文件和iframe文件都从我的本

  • 问题内容: 我是AngularJS的初学者,目前我正在Django中开发一个Web应用程序,在该应用程序中我可以使用AngularJS作为前端部分。我的问题是,用作用域中的对象填充的下拉列表始终以空白元素开头(如果我从列表中选择一个,该问题就不存在了)。这会产生问题,因为如果用户不选择任何内容,那么POST请求通常将不再起作用。我想知道如何拥有类似预选值或类似的东西。这是我的代码的一部分: 选择标

  • 问题内容: 我刚开始使用Numpy,并注意到对Numpy数组中的每个元素进行迭代的速度比相同的要慢4倍,但是要列出列表。我现在知道这违背了Numpy的目的,如果可能,我应该对函数进行向量化。我的问题是,为什么它要慢4倍。这似乎是一个很大的数目。 我使用以下方法进行了测试 我试图用来查看引擎盖下发生了什么,但是得到了: 然后,我尝试查看Numpy源代码,但找不到对应于数组元素访问的文件。我很好奇是什