我有一个HTML表,并为每一行设置了事件侦听器:
var greyHeadings = document.querySelectorAll(".grey");
console.log(greyHeadings);
greyHeadings.forEach(function(greyHeading){
greyHeading.addEventListener('click', function(e){
displayDescription(e, greyHeading);
});
});
Run Code Online (Sandbox Code Playgroud)
称为(displayDescription
)的函数如下:
function displayDescription(e, greyHeading){
var desc = e.target.parentNode.nextSibling.firstChild;
console.log(desc);
}
Run Code Online (Sandbox Code Playgroud)
它确实为我提供了正确的目标,但似乎nextSibiling.firstChild
不起作用。我需要到达下一行(因此,同级),并找到第一个td(因此,第一个Child),以便我可以向其中添加一个active
类,以防万一。
我还创建了一个jsfiddle:https ://jsfiddle.net/7vpzLfke/
我是一个初学者,因此非常感谢您提供更详细的解释!
我正在尝试将一个函数写入 React 组件,但我遇到了这个错误:
未捕获的错误:模块构建失败:语法错误:“productMap”是只读的
为什么会这样?我该如何解决这个问题,以便我可以使用productMap
?
这是我的功能:
printReceipt() {
var products = this.props.updateBasket.products;
//create a map of products
const productMap = {};
for(let product of products) {
if(!productMap[product.id]) {
productMap[product.id] = 1;
} else {
productMap = productMap + 1;
}
}
console.log(productMap);
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读有关 React 中的unknown-prop警告,特别是因为我正在使用react-bootstrap包并在那里偶然发现了它们。
我读过:“为了解决这个问题,复合组件应该“消耗”任何用于复合组件而不是用于子组件的道具”,在这里:
https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b
并给出了一个示例,说明如何使用展开运算符将变量从 props 中取出,并将剩余的 props 放入变量中。
示例代码:
function MyDiv(props) {
const { layout, ...rest } = props
if (layout === 'horizontal') {
return <div {...rest} style={getHorizontalStyle()} />
} else {
return <div {...rest} style={getVerticalStyle()} />
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于:在给出的示例中,我不明白此代码中的“...rest”代表什么。我知道“...”=展开语法,但是“rest”这个词从哪里来,它代表什么?
我正在使用 react-router 将主页上的一组卡片定向到其他单个页面。但是,当我点击卡片时,新页面会在卡片组下方呈现,而我想要的只是呈现新页面。我认为问题可能与我的 App.js 在其中包含主页有关,但我不知道我应该把它放在哪里,是否应该有一个单独的链接等等?我将不胜感激任何帮助!谢谢
这是 App.js 的代码
import React from 'react';
import Routes from '../containers/routes.js';
import ProjectCards from '../containers/project_cards.js';
export default class App extends React.Component {
render() {
return(
<div>
<ProjectCards />
<Routes />
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是主容器:
import React from 'react';
import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import ProjectCard from '../components/project_card.js';
import Project1 from '../components/project1.js';
class ProjectCards extends React.Component {
render() {
var projectCards = this.props.projects.map((project, i) => {
return ( …
Run Code Online (Sandbox Code Playgroud) reactjs react-router react-router-component react-router-v4 react-router-dom
我是初学者,我刚刚尝试这样做:
ul.addEventListener("click", function(e) {
console.log("Hi");
});
Run Code Online (Sandbox Code Playgroud)
这有效。据我所知,这是一个匿名函数。然而,当我尝试事先给出这个函数的定义并像这样传递它时,它不会工作:
function myFunc(e) {
console.log("Hi from myFunc");
}
ul.addEventListener("click", myFunc(e));
Run Code Online (Sandbox Code Playgroud)
我不明白有什么区别。错误如下:
未捕获的引用错误:e 未
在 javascript.js:29 处定义
javascript ×3
reactjs ×3
css ×1
dom-events ×1
for-loop ×1
function ×1
html ×1
loops ×1
react-router ×1