使用jquery从数字中获得星级评分

时间:2013-07-15 14:54:27

标签: javascript jquery html render raty

这里我有使用http://wbotelhos.com/ratyhttp://wbotelhos.com/raty/lib/jquery.raty.min.js

将数字(评级)转换为星号的代码

我创建了一个jsfiddle:http://jsfiddle.net/3SXKe/4/

// mocking your supposed "place" variable
var place = { name: "James Cook Hotel Grand Chancellor", rating: "3.6",
    photos: [{ getUrl: function () { return "https://lh6.googleusercontent.com/-T0_fJX5zza0/UdSnOaucZvI/AAAAAAAAAFc/gQhK3IbHJfY/w50-h50-s0/Small%2BLogo.png" } }]
}

var photo = place.photos[0].getUrl({
    'maxWidth': 50,
    'maxHeight': 50
});

var elemenatDiv = $('<div>').addClass('elemenat');
var draggableDiv = $('<div>').addClass('draggable');
var logo = $('<img>').css({'margin-left': '3px', 'margin-top': '5px'})
                     .attr('src', photo).attr('width', 46).attr('height', 42)
var sideClick = $("<a>").addClass('side_click').attr('href', '#')
                        .text(place.name + place.rating);
var elementnameDiv = $('<div>').addClass('elementname');
var star = $('#star').raty({ score: place.rating });

elemenatDiv.append(draggableDiv.append(logo));
elemenatDiv.append(elementnameDiv.append(sideClick).append(star));

$("#side_bar").append(elemenatDiv);

$(sideClick).on("click", function () {
    markers[i].modalWindow_.getDetails(markers[i].place_);
});

我首先使用var star = $('#star').raty({ score: place.rating });,之后追加elemenatDiv.append(elementnameDiv.append(sideClick).append(star));

但渲染HTML代码时不会显示星级评分?

我尝试不同的解决方案,但我不知道哪里出错?

1 个答案:

答案 0 :(得分:1)

这一行是问题所在:

var star = $('#star').raty({ score: place.rating });

您正在尝试按ID(#star)选择DOM元素,但DOM中没有元素。

您需要将ID为star的DIV注入DOM。