Я знаю, что этот вопрос старый, но поскольку он все еще открыт, посмотрите, как я изменил первый ответ. Я чувствую, что это может понадобиться кому-то еще.
>var lItems = document.getElementsByTagName("ul")[0];
>>var nth = lItems.getElementsByTagName("li")[2];
>>>nth.innerHTML = "<a title='Two'>----NEW LIST ITEM CHANGED-----> </a>";
Таким образом, это в основном решает проблему путем указания позиции элементов, в частности, для захвата и в этом случае [0]. Код не будет работать должным образом, если эта позиция отсутствует, потому что getElementsByTagName (NAME) возвращает коллекцию элементов html, содержащих указанное NAME. Так что, если вы не укажете, какие из них все, код завершится ошибкой.
Если вам нравится повторное использование кода, посмотрите функцию, которую вы можете использовать для этого. Вам просто нужно указать родительский элемент, его позицию и позицию childNode, и вы получите то же самое.
>var nthChild = function(parent, pos, childPos){
>>parent = document.getElementsByTagName(parent)[pos];
>>>return parent.children[childPos];
>>>>};
//used thus:
>nthChild("ul", 0, 2).innerHTML = "<a title='Two'>----NEW LIST ITEM CHANGED-----> </a>
";