2014-01-16 3 views
0

У меня есть следующий XML:Измените целое значение с document.write()

<beanRepresentation> 
    <beanRepId>222</beanRepId> 
    <beanRepName>Bean 1</beanRepName> 
    <topY>10</topY> 
    <leftX>10</leftX> 
    <height>10</height> 
    <width>10</width> 
</beanRepresentation> 

Эта строка получает значение Topy:

document.write(x[i].getElementsByTagName("topY")[0].childNodes[0].nodeValue); 

Это дало бы мне 10, но Я хочу 20, я пытался

document.write(x[i].getElementsByTagName("topY")[0].childNodes[0].nodeValue +10); 

но это не сработало, вместо этого оно дало мне 1010. что я могу сделать, манипулируя номером?

+1

Что вы имеете в виду Что это на самом деле? Я подозреваю, что в результате вы получили что-то вроде '1010', потому что nodeValue - это строка, а не число. –

+0

Да, это дало мне 1010 – PhoonOne

+0

Ну, вот и все. Javascript видел, что 'nodeValue' был строкой, поэтому он приводил ваш номер в строку и разбивал их вместе. Чтобы получить реальную математику, вам нужно преобразовать 'nodeValue' в число. –

ответ

1

Значение, возвращаемое nodeValue, представляет собой строку (см., Например, MDN on this), поэтому вы выполняете конкатенацию строк вместо добавления. Вы должны преобразовать результат в число перед:

document.write(parseInt(x[i].getElementsByTagName("topY")[0].childNodes[0].nodeValue, 10) + 10); 

Во всяком случае, я рекомендую вам прочитать ответы на этот вопрос: «? Это не сработало» Why is document.write considered a "bad practice"?

+0

Благодарим за решение! – PhoonOne

Смежные вопросы