开发者

concatenation in javascript?

i want to concatenate two string in javascript i.e.

$('#bio').css('font-color', result.titleco开发者_C百科lor);

but i want to put the character # before the result.titlecolor i.e.

 $('#bio').css('font-color','#' result.titlecolor);

is this right or wrong? thanks


$('#bio').css('color','#' + result.titlecolor);

(Edited to reflect @BoltClock's comment about 'color' versus 'font-color'.)


This:

'#' result.titlecolor

needs to be:

'#'+ result.titlecolor

In javascript the + operator concatenates to strings together (but remember strings are immutable, so you are creating a new string when you use it). It will also allow you to contatenate a string and a non-string together into a string, such as a number and a string. So this "The answer is : " + 42 becomes "The answer is : 42" The tricky part comes in because if you try and concatenate to numbers together such as 14 + 08, you don't get "1408" it adds the two numbers together to become 22. Logically this makes sense on a simple example, but it can become troublesome when are concatenating variables together which are loosely typed.


$('#bio').css('font-color', '#' + result.titlecolor);


   $('#bio').css('font-color','#' + result.titlecolor);


The + operator serves as both the addition operator and string concatenation operator in JavaScript. So:

1 + 1                   // is 2

'The answer is: ' + 42  // is 'The answer is: 42'

'1' + '1'               // is '11' (!!!)

'1' + 1
1 + '1'                 // are also '11' (!!!!!)

As for your code, the CSS specification defines color but not font-color, so this is what you want:

$('#bio').css('color', '#' + result.titlecolor);

As a side note, if you ever run into the '1' + '1' or 1 + '1' problem (e.g. you are taking a numeric value from a text box), you have to convert the operands to numbers using the unary plus operator or the parseFloat function:

+'1' + +'1'            // is 2
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜