【发布时间】:2020-02-13 07:50:48
【问题描述】:
我已经动态创建了 JSX,并且 1 个元素正在动态获取它的 ID:
{props.types[2].map((element, index) => {
return (
<tr key={index}>
<td className="align-middle">
{element.Type &&
commonFuctions.splitCapitalLetterString(element.Type)}
</td>
<td className="align-middle">
<div className="slideThree">
<input
type="checkbox"
value="None"
id={element.Type}
name="check"
/>
<label htmlFor={element.Type}></label>
</div>
....
....
....
如您所见,动态获取 id 属性的元素是复选框。下面在我拥有的同一个 JSX 中:
{/**********************PENSION TYPES***************************************** */}
{props.types[0].length > 0
? DataExtract.uniquePensionTypes(props.types[0]).map(
(element, index) => {
{
console.log(document.getElementById(`${element}`));
}
}
)
: ""}
</div>
这里的重要部分是这个console.log。 getElementById 中的参数与复选框的 id 相同。但由于某种原因,它没有发现元素并且显示为空。所以我的问题是为什么?是否可以在同一个jsx中声明元素的id及以下来访问它?我什至尝试在此复选框及其下方放置静态 ID,以使用它的静态值访问它,但仍然无法正常工作。
【问题讨论】:
-
在组件中使用 state 并存储所有动态 Id 并在 state 的其他绑定中使用它们。
-
你在用同样的渲染方法做
document.getElementById(${element})吗? -
@ArpithaChandrashekara 相同的 JSX 但其他方法。
标签: javascript html reactjs jsx