Я пытаюсь вывести массив div. Моя проблема здесь в цитатах в синтаксисе JS.Javascript несколько кавычек Свойство свойства CSS неверно
}style = "style='background-color:#30C;'";
var add1 = 'add_to_collection(\''+k+'/'+i+'\');';
var add2 = 'change_color(\''+i+'/'+k+'\');';
divs_b = divs_b+"<div "+brk+" "+style+" onclick='"+add1+add2+" >"+k+"/"+i+"</div>\n";
}
}
document.getElementById('divs').innerHTML = divs_b;
document.getElementById('start').style.display = "none";
я потом иметь следующий из положить в исходном коде:
Котировки будут полностью выйти иначе и CSS разметка исчезает полностью.
<div style="float:left;" class="divs" onclick="add_to_collection(" 2="" 1');change_color('1="" 2');="">2/1</div>
<div style="float:left;" class="divs" onclick="add_to_collection(" 3="" 1');change_color('1="" 3');="">3/1</div>
<div style="float:left;" class="divs" onclick="add_to_collection(" 4="" 1');change_color('1="" 4');="">4/1</div>
<div style="float:left;" class="divs" onclick="add_to_collection(" 5="" 1');change_color('1="" 5');="">5/1</div>
Мой предпочтительный результат будет выглядеть следующим образом:
<div style="float:left;" class="divs" onclick="add_to_collection('2/1');change_color('1/2');" style="background-color:#30C;">2/1</div>
Здесь вся функция:
function build(){
/*var collect_border = document.getElementById('collect_border').innerHTML;
var collect_objects = document.getElementById('collect_objects').innerHTML;
var collect_enemies = document.getElementById('collect_enemies').innerHTML;*/
var collect_exit = document.getElementById('collect_exit').value;
/*var collect_start = document.getElementById('collect_start').value;
var collect_bonus = document.getElementById('collect_bonus').value;*/
/*collect_border = collect_border.split(';');
collect_objects = collect_objects.split(';');
collect_enemies = collect_enemies.split(';');*/
collect_exit = collect_exit;
/*collect_start = collect_start;
collect_bonus = collect_bonus.split(';');
*/
var x_val = document.getElementById('width').value;
var y_val = document.getElementById('height').value;
var divs_b = "";
var brk = "";
var style = "";
for(var i=1;i<=y_val;i++){
for(var k=1;k<=x_val;k++){
if((i>1)&&(k==1)){
brk = "style='clear:both;'";
}
else {
brk = "style='float:left;'";
}
// var addval = '"'+i+'"/"'+k+'"';
if(collect_exit!=""){
col_exit = collect_exit.split("/");
var col_exit_x = col_exit[0];
var col_exit_y = col_exit[1];
if((col_exit_x==i)&&(col_exit_y==k)){
}
}style = "style='background-color:#30C;'";
var add1 = 'add_to_collection(\''+k+'/'+i+'\');';
var add2 = 'change_color(\''+i+'/'+k+'\');';
divs_b = divs_b+"<div "+brk+" "+style+" onclick='"+add1+add2+" >"+k+"/"+i+"</div>\n";
}
}
document.getElementById('divs').innerHTML = divs_b;
document.getElementById('start').style.display = "none";
}
Это было бы намного проще, если бы не использовались старые методы построения разметки. – user2864740
Для начала ваши атрибуты onclick сломаны, если вы хотите дать свои значения/аргументы функции функции, используйте одиночные кавычки, если onclick использует двойные кавычки или наоборот. 'onclick =" add_to_collection ('5 =', '1'); "' Также разделяйте ваши значения/аргументы с помощью ',' Вы также можете отобразить полную функцию. ** Весь ** соответствующий исходный код помогает нам дать вам решение (ы) или причину (-ы) за вашей проблемой. – NewToJS
Возможный дубликат [Как правильно избежать кавычек внутри атрибутов html?] (Http://stackoverflow.com/questions/4015345/how-to-properly-escape-quotes-inside-html-attributes) – Luizgrs