jQuery IE

Composing an element like below works fine in Firefox, but IE throws and error?
I think it doesn’t like the class keyword or something?

var courseId = $('<span>', {
    class: 'cCourseId r0',
    text: selectedCourse.find('.cCourseId').text()

Try changing second line to this:

‘class’: ‘cCourseId r0’,

@CyberAlien - that doesn’t work either. It compiles now, but jQuery throws an error at runtime.

I think that you’ll need to remove class from the attributes list, and add it afterwards using the addClass method

does specifying className work? You can’t specify class because that is a reserved word in JavaScript so JavaScript uses className to refer to the class attribute…

Yes, className should work well. A simple test confirms

<style type="text/css">
.cCourseId { color: green; }
.r0 { text-decoration: bold; }
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
$(function () {
    var $selectedCourse = $('[name="selectedCourse"]'),
        $liRequest = $('li#request'),
        courseId = $('<span>', {
            className: 'cCourseId r0',
            text: $selectedCourse.find('.cCourseId').text()

<select name="selectedCourse">
    <option name="course1">Course 1</option>
    <option name="course2" class="cCourseId" selected="selected">Course 2</option>
    <li id="request"></li>

Note: variables have been renamed so that for example, liRequest is prefixed with $ (as $liRequest) to indicate that it’s an actual jQuery object.

Thanks guys, className works