Увеличьте значение в несколько строк одновременно - PullRequest
0 голосов
/ 01 декабря 2018

Скажем, у меня есть 500 объектов (линий), например:

<object id="5700" interior="0" doublesided="false" model="1890" dimension="0" posX="400" **posY**="30" posZ="100" rotX="0" rotY="0" rotZ="0"></object>

Теперь для всего "блока" из 500 строк я бы хотел добавить 20 к posY .

Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Вы можете использовать класс SimpleXMLElement для создания объекта с параметрами, которые вы можете изменить.

Попробуйте это в файле php в качестве примера, чтобы поиграться с:

$xml_fragment = '<object id="5700" interior="0" doublesided="false" model="1890" dimension="0" posX="400" posY="30" posZ="100" rotX="0" rotY="0" rotZ="0"></object>';

$XML = new SimpleXMLElement($xml_fragment);

for ($i=0; $i<500; $i++){
    $XML['posY']=$XML['posY']+20;
    echo $XML->asXML(); 
}

В вашемВ этом случае вы будете перебирать существующие объекты, создавая новый объект $ XML для каждой строки, добавляя 20 к параметру 'posY' объекта и выводя туда, куда нужно перейти.

0 голосов
/ 01 декабря 2018

Вы можете сделать это, используя несколько способов, один путем добавления общего селектора, такого как class или attr, или с помощью getElementsByTagName('object') и циклически перебирать объекты и устанавливать атрибут с измененными значениями.

Посмотрите накод ниже для примера.

const myObjects = document.querySelectorAll('.myObject');

myObjects.forEach( object => {
  let currentPosX = object.getAttribute('posX');
  object.setAttribute('posX', parseInt(currentPosX, 10) + 20)
})

console.log(myObjects);
<object id="5700" class="myObject" interior="0" doublesided="false" model="1890" dimension="0" posX="400" **posY**="30" posZ="100" rotX="0" rotY="0" rotZ="0"></object>
<object id="5701" class="myObject" interior="0" doublesided="false" model="1890" dimension="0" posX="400" **posY**="30" posZ="100" rotX="0" rotY="0" rotZ="0"></object>
<object id="5702" class="myObject" interior="0" doublesided="false" model="1890" dimension="0" posX="400" **posY**="30" posZ="100" rotX="0" rotY="0" rotZ="0"></object>
<object id="5703" class="myObject" interior="0" doublesided="false" model="1890" dimension="0" posX="400" **posY**="30" posZ="100" rotX="0" rotY="0" rotZ="0"></object>
...