Код JavaScript DOM не работает

В моем HTML есть

cell = document.createElement("td");
cell.appendChild(document.createTextNode(contents));
cell.setAttribute('width', '100');

Следующий синтаксис не работает.

cell.appendChild(document.createElement('br')).appendChild(document.createTextNode("Another text"));

И после содержимого ячейки у меня есть разрыв строки, за которым следует другой текст маленькими буквами в той же ячейке. Как мне это сделать?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
3 108
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Похоже, вы пытаетесь связать вызовы методов ... Извините! Нет цепочки для собственных элементов. Если вы хотите использовать цепочку, попробуйте jQuery, в противном случае попробуйте:

var cell = document.createElement("td");
cell.appendChild(document.createTextNode(contents));
cell.setAttribute('width', '100');

// To make some text smaller you'll need it in a different element like a span
var span = document.createElement('span');
span.className = 'your-class-for-small-text';
span.appendChild(document.createTextNode("Another text"));

cell.appendChild(document.createElement('br'));
cell.appendChild(span);

Вам нужно будет добавить немного CSS в стиль, который будет иметь меньший текст:

<style type = "text/css">
    .your-class-for-small-text {
        font-size: 12px;
    }
</style>

Или вы можете просто изменить стиль этого элемента вместо использования className:

var cell = document.createElement("td");
cell.appendChild(document.createTextNode(contents));
cell.setAttribute('width', '100');

// To make some text smaller you'll need it in a different element like a span
var span = document.createElement('span');
span.style.fontSize = '12px';
span.appendChild(document.createTextNode("Another text"));

cell.appendChild(document.createElement('br'));
cell.appendChild(span);

Прежде всего, вы добавляете текстовый узел к тегу BR, у которого нет дочерних элементов.

Вместо этого попробуйте разделить вашу линию на два вызова:

cell.appendChild(document.createElement('br'));
cell.appendChild(document.createTextNode("Another text"));

Как сделать другой текст меньше

venkatachalam 17.01.2009 09:05

How to make Another Text is To be smaller

Я предполагаю, что вы пытаетесь применить мой код из Подстрочный текст в HTML:

cell.appendChild(document.createElement('sub')).appendChild(document.createTextNode(subdata));

Это работает, потому что Node.appendChild возвращает только что добавленный дочерний элемент, который является подэлементом. Второй вызов appendChild помещает текстовый узел внутрь подэлемента. Этот не работает с br, потому что br - пустой элемент, в него ничего нельзя поместить. Вы можете поставить что-нибудь после него, но код делает это не так.

Хотя вы можете сделать это с помощью подэлемента (используя строку выше сразу после добавления br), может быть лучше использовать стилизованный блочный элемент:

cell.appendChild(document.createElement('div'));
cell.lastChild.className= 'less-important';
cell.lastChild.appendChild(document.createTextNode(subdata));

в таблице стилей:

.less-important { font-size: 80%; }

Другие вопросы по теме