2013-11-02 3 views
-2

ОК, я не могу описать это слово в слово, так что я буду использовать пример:переменной Javascript равен переменной истинной

function f1() { 
    document.write(vavariable) 
}; 

function f2(){ 
    if(variablefot) 
    document.body.style.color='red'; 
}; 

variablefot = false; 
variablefotok = variablefot = true; 
variable1 = 'text1' +variablefotok; 

variable2 = 'text2'; 

vavariable = variable1 

сейчас, когда я использую <script>f1();f2();</script> и vavariable = variable1 я должен получить красный text1 Но я получаю красный text1 + текст «истинный»

Когда я использую vavariable2 Я хочу, чтобы получить text2 без цвета тела красного Но я все еще получаю RED text2

Я пытался сделать это Wi й функции, но она также не работает.

Пожалуйста, помогите мне заставить его работать. Я уже потерял несколько часов, пытаясь это сделать. Спасибо!

+0

Можете ли вы объяснить, что вы хотите? – Popnoodles

+0

Я хочу получить текст1 и цвет тела красный, когда я использую vavariable = variable1. И когда я использую vavariable = variable2, я хочу получить text2 без красного цвета. – Simon

+1

В нижней части первого блока кода, прежде чем вы вызываете 'f1' и' f2', как вы думаете, что находится в переменных? – Sumurai8

ответ

1

Variablefotok равно true, поэтому именно это написано.

Чтобы изменить цвет кузова, просто используйте функцию f2, за исключением изменения цвета до значения по умолчанию, черного. По существу, вы можете записать текст в документ и изменить цвет в зависимости от переменной каждый раз, или просто написать HTML-код в документе, например <span style="color:red">text</span> или <span style="color:black">text</span>. Вы также можете использовать классы для них вместо встроенных объявлений CSS. Это будет работать в этом случае.

function write(){ 
    document.write(text); 
    document.body.style.color = color; 
} 

variable1 = 'text1'; 
variable2 = 'text2'; 

С помощью этого кода вы можете просто выполнить следующие функции. Вы также можете использовать его столько, сколько хотите, например, если у вас есть весь текст, хранящийся в переменных.

write(variable1, 'red'); 
write(variable2, 'black'); 
write(variable3, 'green'); 
write(variable4, 'blue'); 
write(variable5, 'brown'); 
write(variable6, 'yellow'); 
0

Ну, чтобы начать с:

variablefotok = variablefot=true; 

будет первым присвоить верным variablefot, а затем variablefotok. Таким образом, оба будут истинными.

variable1 = 'text1' +variablefotok; 

С variablefotok является true, variable1 теперь будет 'text1true'. И таким образом переменная в конечном итоге будет 'text1true'.

function f2(){ 
    if(variablefot) 
     document.body.style.color='red'; 
}; 

Будет ли (при вызове) изменить цвет кузова на красный, если variablefot = true. Поскольку это верно, он всегда будет менять цвет тела на красный, независимо от значения переменной.

0

Это действительно неясно, что вы пытаетесь сделать, но я все равно могу помочь.

Вот что у вас есть, более или менее: http://jsfiddle.net/ySqGg/

я должен получить красный text1 Но я получаю красный text1 + текст «истинный»

Это происходит потому, что вы «добавление» true в строку.

variablefotok = variablefot=true; 
// variablefotok and variablefofot are now both set to true 

variable1 = 'text1' +variablefotok; 
// same as: variable1 = 'text1' + true; 
// `true` is converted into a string so it can be combined with a string 
// variable1 is now `text1true` 

Так почему же это происходит?Ну давайте посмотрим на одну строку выше:

variablefot = false; 
variablefotok = variablefot = true; 

Это можно пояснить следующим образом:

variablefot = false; 
variablefotok = (variablefot = true); 

Итак, сначала вы установите variablefot в false. Затем на следующей строке вы установите значение true. Операторы присваивания возвращают присвоенное значение, поэтому вы также устанавливаете значение variablefotok.

Затем более поздняя версия f2 работает, а variablefot теперь верна, и вы получаете красный цвет.

Возможно, вы имели в виду сравнение?

variablefotok = (variablefot == true); 

С этим изменением, текст делает не краснеют, потому что variablefot остается false. http://jsfiddle.net/ySqGg/1/

Но вам редко приходится что-то сравнивать с true. Вы можете просто использовать переменную, так как это true или false.

variablefotok = variablefot; 

Который также не превращает ничего красного. См: http://jsfiddle.net/ySqGg/2/


Это сбивает с толку, чтобы ответить, потому что вы настраиваете много переменных, но только с помощью один за что usefult (variablefot в f2). Если бы я был вами, я бы подумал о том, какие переменные у вас есть, и убедитесь, что вам действительно нужен каждый, а затем удалите остальные.

Смежные вопросы