Javascript WebStorm:can';t捕获<;输入/>;使用jQuery

Javascript WebStorm:can';t捕获<;输入/>;使用jQuery,javascript,jquery,html,webstorm,Javascript,Jquery,Html,Webstorm,我用React.js和slider创建了一个网站,它使用jQuery进行自动滚动。我已经在沙盒(Codepen.io)中完成了,它工作得很好。在我开始用“CreateReact应用程序”和WebStorm做这件事之后。我所做的: 我在命令行中写道: "npm install create-react-app" "npm install jquery" "create-react-app my-app" 在那之后,我用WebStorm 2018.2(x86)打开了“我的应用程序”,并将沙箱中的所

我用React.js和slider创建了一个网站,它使用jQuery进行自动滚动。我已经在沙盒(Codepen.io)中完成了,它工作得很好。在我开始用“CreateReact应用程序”和WebStorm做这件事之后。我所做的: 我在命令行中写道:

"npm install create-react-app"
"npm install jquery"
"create-react-app my-app"
在那之后,我用WebStorm 2018.2(x86)打开了“我的应用程序”,并将沙箱中的所有代码传输到其中,添加了一些“导入”命令。因此,滑块现在无法工作(它的工作方式就像缺少JavaScript代码一样)。 我删除了额外的代码。剩下的就是: JS代码

import React from 'react';
import $ from 'jquery'

/*jshint esversion: 6 */
class App extends React.Component {
    render() {
        return <div><div className = "slider"><input type = "radio" name = "slides" id = "slide1" /><input type = "radio" name = "slides" id = "slide2" /><input type = "radio" name = "slides" id = "slide3" /><input type = "radio" name = "slides" id = "slide4" /><input type = "radio" name = "slides" id = "slide5" />
            <input type = "radio" name = "slides" id = "slide6" /><div className = "captions"><div className = "c2" > Prediction 2 </div><div className = "c3"> Prediction 3 </div> <div className = "c4" > Prediction 4 </div> <div className = "c5" > Prediction 5 </div> 
            <div className = "c6" > Prediction 6 < /div></div></div> <div className = "controls" ><label htmlFor = "slide1" /><label htmlFor = "slide2" /><label htmlFor = "slide3" /><label htmlFor = "slide4" /><label htmlFor = "slide5" /><label htmlFor = "slide6" /></div></div>;
    }
}

ReactDOM.render( <App/> , document.getElementById('root'));

//script for slider's autoscrolling

let inputs = $('input[type=radio]');
console.log(inputs);
let next;
let intervals = setInterval(() => {
    next = inputs.filter(":checked").next('input');
    if (!next.length) next = inputs.first();
    next.prop('checked', true);
}, 2000);

inputs.change(() => {
    clearInterval(intervals);
    intervals = setInterval(function() {
        next = inputs.filter(":checked").next('input');
        if (next.length) next.prop('checked', true);
        else inputs.first().prop('checked', true);
    }, 2000);
});
从“React”导入React;
从“jquery”导入$
/*jshint版本:6*/
类应用程序扩展了React.Component{
render(){
返回
预测2预测3预测4预测5
预测6
; } } ReactDOM.render(,document.getElementById('root')); //滑块自动滚动的脚本 让输入=$('input[type=radio]'); 控制台日志(输入); 让我们下一步; let interval=setInterval(()=>{ 下一步=输入。过滤器(“:选中”)。下一步('input'); 如果(!next.length)next=inputs.first(); next.prop('checked',true); }, 2000); 输入。更改(()=>{ 清除间隔(间隔); 间隔=设置间隔(函数(){ 下一步=输入。过滤器(“:选中”)。下一步('input'); if(next.length)next.prop('checked',true); else输入.first().prop('checked',true); }, 2000); }); HTML

<!DOCTYPE html>
<html lang="en">
  <head>
      <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
      <meta charset="utf-8">
      <title>React App</title>
  </head>

  <body>
      <div id="root"></div>
  </body>
</html>

反应应用程序

在控制台中,我看到:
jQuery.fn.init(0)
。我应该做些什么来捕捉输入?

谢谢@connexo的回答:

$(document).ready(()=>{
        let inputs = $('input[type=radio]');
        console.log(inputs);
        let next;
        let intervals = setInterval(() => {
            next = inputs.filter(":checked").next('input');
            if (!next.length) next = inputs.first();
            next.prop('checked', true);
        }, 2000);

        inputs.change(() => {
            clearInterval(intervals);
            intervals = setInterval(function() {
                next = inputs.filter(":checked").next('input');
                if (next.length) next.prop('checked', true);
                else inputs.first().prop('checked', true);
            }, 2000);
        });
    })

现在开始工作了!要弄清楚,如果没有这个语句,我就试图在输入标记未加载时访问它们

使用
document.ready(function(){…})
。太好了!我将$(document.ready(()=>{})添加到我的代码中,它工作了!为什么它需要它?“$”是模拟$(document).ready(()=>{})之前,您试图在DOM被完全解析之前访问它。请在回答中解释出现了什么问题以及为什么会解决问题。