Функция Javascript добавляет пробел

0

У меня есть этот код:

var ii='"'+'c0'+thecid+'"';  
var newcommhtml = '<div id="c0'+thecid+'" class="cnew clearfix">';
newcommhtml = newcommhtml + '<section class="c-content">';  
newcommhtml = newcommhtml + '<a href="#" onclick="document.getElementById('+ii+').style.display = "none";" style="color:black;">x</a>';  
newcommhtml = newcommhtml + '<p>'+nl2br(textval)+'</p> </section></div>';

В основном, когда некоторые условия встречались, он добавляет раздел на страницу с некоторым текстом. В этот раздел (строка 4 в приведенном выше коде) добавляется топор в раздел. Я хотел бы сделать так, что при щелчке x этот раздел исчезает.

Когда я запускаю этот код на веб-странице, он не работает. Я проверил id getElementById(), там что-то странное: пространство добавляется перед идентификатором элемента, я не знаю, откуда оно взялось.

Я не могу решить проблему, кто-нибудь знает, почему это происходит?

Фотографии результата:

  • 0
    Вы устали от использования этого var ii='c0'+thecid; вместо этого var ii='"'+'c0'+thecid+'"'; ?
  • 0
    Просто чтобы вы знали, вместо использования newcommhtml = newcommhtml + ... вы можете просто использовать сокращенную форму += - например, newcommhtml += ...
Теги:

3 ответа

1
Лучший ответ

Использовать это:

var ii = 'c0'+thecid;
var newcommhtml = '<div id="'+ii+'" class="cnew clearfix">';
newcommhtml += '<section class="c-content">';  
newcommhtml += '<a href="#" onclick="document.getElementById(\''+ii+'\').style.display = \'none\';" style="color:black;">x</a>';  
newcommhtml += '<p>'+nl2br(textval)+'</p></section></div>';

Так:

  • Не добавляйте кавычки к переменной ii
  • Использование ii для идентификатора вместо перерасчета его
  • В onclick двойные кавычки вокруг none не ошибались
  • Вы можете использовать += для расширения строки
  • 0
    спасибо, что на самом деле решил это большое спасибо :)
0

Попробуй это:

var ii='c0'+thecid;  
var newcommhtml = '<div id="'+ii+'" class="cnew clearfix">';
newcommhtml = newcommhtml + '<section class="c-content">';  
newcommhtml = newcommhtml + '<a href="#" onclick="document.getElementById('+ii+').style.display = "none";" style="color:black;">x</a>';  
newcommhtml = newcommhtml + '<p>'+nl2br(textval)+'</p> </section></div>';
  • 0
    пытался это не помогло
  • 0
    Отредактировал мой ответ. Пожалуйста, проверьте.
0

Основной причиной проблемы является добавление двойных кавычек с идентификатором типа "c04".

Просто удалите двойные кавычки из вашей первой строки var ii='"'+'c0'+thecid+'"';

Измените его на - var ii = 'c0'+ thecid;

  • 0
    пытался это не помогло
  • 0
    измените этот 'document.getElementById (' + ii + ')' на 'document.getElementById (ii);'. это будет работать сейчас ....

Ещё вопросы

Сообщество Overcoder
Наверх
Меню