1

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

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

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

BoltClock
  • 665,005
  • 155
  • 1,345
  • 1,328
getaway
  • 8,514
  • 21
  • 61
  • 93

5 Answers5

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

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

Brian Clapper
  • 24,425
  • 7
  • 63
  • 65
5

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.

Community
  • 1
  • 1
kemiller2002
  • 110,913
  • 27
  • 192
  • 245
1
$('#bio').css('font-color', '#' + result.titlecolor);
adarshr
  • 59,379
  • 22
  • 134
  • 163
1
   $('#bio').css('font-color','#' + result.titlecolor);
Luis
  • 5,939
  • 2
  • 30
  • 51
1

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
PleaseStand
  • 30,777
  • 6
  • 65
  • 95