Bird
Raised Fist0
Reactframework~10 mins

JSX vs HTML differences in React - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to use the correct JSX attribute for CSS classes.

React
<div [1]="container">Hello World</div>
Drag options to blanks, or click blank then click option'
Aid
Bclass
Cstyle
DclassName
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'class' instead of 'className' causes errors in JSX.
2fill in blank
medium

Complete the code to correctly write a self-closing tag in JSX.

React
<img src="logo.png" [1]>
Drag options to blanks, or click blank then click option'
A/>
B</img>
C>
D></img>
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting the slash in self-closing tags causes syntax errors.
3fill in blank
hard

Fix the error in the JSX code by choosing the correct attribute for inline styles.

React
<div [1]={{ color: 'red' }}>Text</div>
Drag options to blanks, or click blank then click option'
AclassName
Bstyle
CstyleName
Dcss
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'className' or 'styleName' instead of 'style' for inline styles.
4fill in blank
hard

Fill both blanks to correctly write a JSX event handler for a button click.

React
<button [1]=[2]>Click me</button>
Drag options to blanks, or click blank then click option'
AonClick
Bonclick
C{handleClick}
DhandleClick
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase event names like 'onclick'.
Wrapping the handler in extra braces inside the attribute.
5fill in blank
hard

Fill all three blanks to correctly write a JSX fragment with two paragraphs.

React
<>[1][2][3]<p>Second paragraph</p></>
Drag options to blanks, or click blank then click option'
A<p>First paragraph</p>
BFirst paragraph
C</p>
D<p>
Attempts:
3 left
💡 Hint
Common Mistakes
Putting raw text outside paragraph tags.
Not closing paragraph tags properly.

Practice

(1/5)
1. Which attribute should you use in JSX to add CSS classes to an element?
easy
A. cssClass
B. class
C. className
D. styleClass

Solution

  1. Step 1: Recall JSX attribute rules

    In JSX, the HTML attribute class is replaced by className because class is a reserved word in JavaScript.
  2. Step 2: Identify correct attribute for CSS classes

    Therefore, to add CSS classes in JSX, you must use className.
  3. Final Answer:

    className -> Option C
  4. Quick Check:

    JSX uses className, not class [OK]
Hint: Remember: JSX uses className, not class for CSS classes [OK]
Common Mistakes:
  • Using 'class' instead of 'className' causes errors
  • Confusing 'className' with 'cssClass'
  • Trying to use 'styleClass' which doesn't exist
2. Which of the following is the correct way to write a label with a 'for' attribute in JSX?
easy
A. Name
B. Name
C. Name
D. Name

Solution

  1. Step 1: Understand JSX attribute naming

    In JSX, the HTML attribute for is replaced by htmlFor because for is a reserved word in JavaScript.
  2. Step 2: Check correct casing and spelling

    The correct attribute is htmlFor with capital F, so <label htmlFor="inputId">Name</label> is correct.
  3. Final Answer:

    <label htmlFor="inputId">Name</label> -> Option A
  4. Quick Check:

    Use htmlFor, not for in JSX labels [OK]
Hint: Use htmlFor (camelCase) instead of for in JSX labels [OK]
Common Mistakes:
  • Using 'for' attribute directly causes syntax errors
  • Writing 'htmlfor' with lowercase f is incorrect
  • Using non-existent attributes like 'forId'
3. What will be the rendered output of this JSX code?
const element = <input type="checkbox" checked="true" />;
ReactDOM.render(element, document.getElementById('root'));
medium
A. A checkbox input with checked attribute as string
B. A checked checkbox input
C. Syntax error due to checked attribute value
D. An unchecked checkbox input

Solution

  1. Step 1: Analyze checked attribute in JSX

    In JSX, checked="true" without curly braces sets the prop to the string "true".
  2. Step 2: Understand rendering of boolean attributes

    React renders <input type="checkbox" checked="true" />. Browsers treat the presence of the checked attribute (any non-empty value) as checked for uncontrolled checkboxes.
  3. Final Answer:

    A checked checkbox input -> Option B
  4. Quick Check:

    Attribute presence checks uncontrolled checkbox [OK]
Hint: checked="true" renders checked checkbox (attribute presence) [OK]
Common Mistakes:
  • Thinking checked="true" leaves checkbox unchecked
  • Expecting string value to cause syntax error
  • Confusing uncontrolled render with controlled components
4. Identify the error in this JSX snippet:
const element = <div class="container">Hello</div>;
medium
A. Using class instead of className
B. Using double quotes instead of single quotes
C. Missing closing tag for div
D. Using semicolon inside JSX

Solution

  1. Step 1: Check attribute names in JSX

    JSX does not use the HTML attribute class. Instead, it uses className because class is a reserved word in JavaScript.
  2. Step 2: Verify other parts of the snippet

    The quotes and closing tag are correct. The semicolon is outside JSX and valid in JavaScript.
  3. Final Answer:

    Using class instead of className -> Option A
  4. Quick Check:

    JSX requires className, not class [OK]
Hint: Replace class with className in JSX attributes [OK]
Common Mistakes:
  • Using class attribute causes React warnings or errors
  • Thinking quotes style causes errors
  • Confusing semicolon placement inside JSX
5. You want to apply inline styles to a JSX element to make text red and bold. Which is the correct way?
hard
A.
Text
B.
Text
C.
Text
D.
Text

Solution

  1. Step 1: Understand JSX style attribute syntax

    In JSX, the style attribute expects a JavaScript object, so you use double curly braces: the outer for embedding JS, the inner for the object.
  2. Step 2: Check property names and values

    CSS properties use camelCase in JSX, so fontWeight is correct. Values are strings like 'red' and 'bold'.
  3. Final Answer:

    <div style={{color: 'red', fontWeight: 'bold'}}>Text</div> -> Option D
  4. Quick Check:

    Use double braces and camelCase for inline styles [OK]
Hint: Use double braces and camelCase keys for JSX inline styles [OK]
Common Mistakes:
  • Using string style attribute instead of object
  • Missing curly braces around style object
  • Using CSS property names with hyphens instead of camelCase
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard