Цикл массива строк, которые будут использоваться для идентификатора элемента

#javascript #reactjs

#javascript #reactjs

Вопрос:

Как я могу зациклить массив строк, которые будут использоваться для идентификатора элемента?

Учитывая код:

 componentDidMount() {
  var IDs = ['ID1', 'ID2']
  for(var x=0; x < IDs.length; x  ) {
    const thisID = document.getElementById(IDs[x])
    thisID.style.opacity = '0'
  }
}
 

Я все делаю правильно или, возможно, что-то упускаю? Спасибо.

Комментарии:

1. В чем ваша проблема?

2. Вы захотите применить идентификаторы или стили по идентификатору в возвращаемом jsx компонента. Вы не хотите вручную изменять DOM в React.

Ответ №1:

Вы предоставили мало информации. Может быть, это поможет

 let IDs = ['ID1', 'ID2'];

IDs.forEach(function(number) {
    console.log(number);
  let div = document.getElementById(number); //javascript
  // or use jquery 
  // const thisID = $(`#{number}`) //jquery 
  div.style.opacity = '0';
});

// or use jQuery 

let IDjQuery = ['ID4', 'ID5'];

IDjQuery.forEach(function(number) {
  console.log(number);
  let divjQuery = $(`#${number}`); //jQuery 
  divjQuery.css('opacity', '0');
}); 
 <div id="ID1">Test 1</div>
<div id="ID2">Test 2</div>
<div id="ID3">Test 3</div>
<!-- or use jQuery  -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="ID4">Test 4</div>
<div id="ID5">Test 5</div>
<div id="ID6">Test 6</div> 

Ответ №2:

Если вы используете react , вы должны сделать аналогично этому,

 export default function App() {
  const elements = [
    { id: 1001, label: "Orange" },
    { id: 1002, label: "Apple" },
    { id: 1003, label: "Banana" }
  ];
  const selectedDiv = [1001];
  return (
    <div className="App">
      <h1>List</h1>
      {elements.map((v) => (
        <div style={{ opacity: selectedDiv.includes(v.id) ? "0" : "1" }}>
          {v.label}
        </div>
      ))}
    </div>
  );
}
 

Рабочий код: — https://codesandbox.io/s/prod-brook-buyyl?file=/src/App.js:51-464