2010-02-24 5 views
1

Почему это не работает? innerHTMl не может быть настолько сложным?JavaScript innerHTML

<html> 
<head> 
    <script type="text/javascript"> 
     function addTable() { 
      var html = "<table><tr><td><label for="name">Name:</label></td><td><input type="text" id="name"></input></td></tr>"; + 
       "<tr><td><label for="remarks">Remarks:</label></td><td><input type="text" id="remarks"></input></td></tr></table>"; 
      document.getElementById("addtable").innerHTML = html; 
     } 
    </script> 


</head> 
<body> 
    <input type="submit" value="New Table" onClick="addTable()"/> 
    <div id="addtable"></div> 
</body> 
</html> 

что-то менее сложным, как это работает:

var html = "<table><tr><td>123</td><td>456</td></tr></table>"; 

ответ

5

Вам нужно либо бежать двойные кавычки внутри строки, вы присваиваете переменной html, или просто заключите строку в одинарные кавычки. Используйте текстовый редактор с подсветкой синтаксиса, и такие ошибки сразу выйдут на вас. У вас также есть дополнительная точка с запятой в вашем задании.

+1

Это основная причина, по которой я использую одинарные кавычки, чтобы обозначать строки в javascript. –

+0

Я использую Notepad ++ ... – yeeen

1

Ваши объявления заблокированы. Вы используете двойные кавычки внутри строки:

"<tr><td><label for="remarks">Remarks:</label></td><td><input .... 

консоль ошибок Firefox всегда должна быть вашей первой остановкой, ошибки типа, которые всегда регистрируются там.

0

вместо двойных кавычек использовать одиночные кавычки, как показано ниже:

вар HTML = "< таблица > < тр > < тд > < метка для 'имя' = > Имя: </этикетка > </тд > < < тд > тип ввода = 'текст' ID = 'имя' > </вход > </TD > </тр > '+ "< тр > < тд > < этикетки для > Примечания = 'Замечания': </этикетка > </тд > < тд > < тип ввода = 'текст' ID = 'Замечания' > </вход > </тд > </tr > </стол > ";

Наслаждайтесь кодированием !!

1

Ваша строка разделена с использованием двойных кавычек и также использует их внутри строки. Переключитесь на использование одинарных кавычек в строке.

var html = "<table><tr><td><label for='name'>Name:</label></td><td><input type='text' id='name'></input></td></tr>"; + 
"<tr><td><label for='remarks'>Remarks:</label></td><td><input type='text' id='remarks'></input></td></tr></table>"; 
0

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

0

Существует ошибка в строке, попробуйте следующее:

вар HTML = "Имя:"; + "Примечания:"; document.getElementById ("addtable"). InnerHTML = html;