2016-05-10 4 views
0

Это мой первый пост, я «новый» для javascript, но опытный в actionscript. У меня проблема, которая не должна быть одной, не может окунуться в нее.pass toString (number) in innerHTML

В приведенном ниже коде все, что я хочу сделать, это передать целочисленную переменную (stackID) в качестве атрибута img id внутри innerHTML. Это должна быть какая-то деталь, которую я просто не знаю, но я искал часы в Google безрезультатно. Помощь будет значительно оценена. Что бы я ни делал, кажется, я могу только пройти <img id="string">, что, конечно, не то, что я хочу. Не могу пройти <img id=numVariable>, или <img id=String(numVariable)>, должен быть, конечно, способ сделать это?

Спасибо, ребята!

Вот строка кода:

div.innerHTML='<img src="img/xbut.png" id=String(stackID) onclick="close(this.id)">'; 
+0

Мы не можем почтовый индекс? Повторное попыток: внутреннийHTML = ''; –

+0

Я не понимаю, код был удален из оригинального сообщения. Вот опять из последнего предложения: Что бы я ни делал, кажется, я могу пройти только id = "string", что, конечно же, не то, что я хочу. Не удается передать id = numVariable, или id = String (numVariable), наверняка должен быть способ сделать это? Вот строка кода = var stackIDString = String (stackID); div.innerHTML = ''; –

+0

Замечания о том, что все перерывы удалены. Гектометр Попробуй где-нибудь еще, можно сказать, что есть некоторые правила, о которых я не знаю, извините за это –

ответ

0

Вы пытаетесь передать его в строке. То, что вы хотите сделать, это:

div.innerHTML='<img src="img/xbut.png" id="' + String(stackID) + '" onclick="close(' + this.id + ')">'; 

О, и так как вы уже делает строку, вам не нужна строка() преобразования, вы можете просто id="' + stackID + '"

0

Javascript свободно типизированных и будет автоматически конвертировать (в меру своих возможностей), что вы хотите интерполировать в строке:

var num = 1; 
"sup" + num; // => "sup1" 

это круто, но будьте осторожны, это может привести к некоторым странным сюрпризам:

var obj = {}; 
"sup" + obj.missingKey; // => "supundefined" 

В этом случае obj.missingKey === undefined и String(undefined) === "undefined", поэтому "sup" + obj.missingKey фактически становится "sup" + "undefined"

1

Javascript не имеет интерполяцию строки. Соединить stackId как:

div.innerHTML='<img src="img/xbut.png" id="' + stackID + '" onclick="close(this.id)">'; 
0

Используйте '+', чтобы присоединиться куски, как это:

div.innerHTML='<img src="img/xbut.png" id="' + String(stackID) + '" onclick="close(' + this.id + ')">'; 
0

Попробуйте это, вы делаете переменная динамична:

var x = 0; 
    x = x +1; 
    div.innerHTML='<img src="img/xbut.png" id="name_' + x + '" onclick="close(this.id)">'; 
+0

ОК, спасибо всем! –