我试图以编程方式设置元素的属性,但萤火虫不断给出错误:obj.setAttribute不是一个函数。我使用jQuery,所以我将显示一些额外的代码,以便您可以看到上下文。javascript问题设置属性
的代码如下:
$j(function(){
function callback(response) {
if (response.status == 200) {
var data = response.responseBody;
console.log(data)
if (data.length > 0) {
var artistData = $j.parseJSON(data);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(artistData.location.lat, artistData.location.lng),
map: map
});
var obj = document.getElementById('ratingRender').firstChild;
obj.setAttribute("model", "[artist: deftones, rating: 4.0, artistID: 1]");
document.getElementById('recommendedList').appendChild(obj);
}
}
}
$j.atmosphere.subscribe('${resource(dir: '/atmosphere/recommend')}',
callback,
$j.atmosphere.request = {transport: 'streaming'});
$j('#buttonPost').click(function() {
var searchedArtist = '${search.artist}';
$j.get('${createLink(action: "recommend")}?artist=' + searchedArtist);
});
});
和ratingRender DIV:
<div id="ratingRender" style="display: none">
<g:render template="/artist/rate" model="[artist: deftones, rating: 3.0, artistID: 1]" />
</div>
任何想法,为什么会出现这种情况? 非常感谢!
UPDATE
我试着用这样的:
var obj = $('#ratingRender').children().eq(0);
obj.attr("model", "[artist: deftones, rating: 4.0, artistID: 1]");
,并没有给出错误了。但是,它也不会修改该属性。我不知道为什么。任何人?
我认为它*可能与这个事实有关,这不是一个有效的属性,也不是一个有效的元素。 –