Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript函数代替变量_Javascript_Jquery_Html_Function_Variables - Fatal编程技术网

使用javascript函数代替变量

使用javascript函数代替变量,javascript,jquery,html,function,variables,Javascript,Jquery,Html,Function,Variables,这里我有一个创建侧栏的代码: var side_bar_html = "<a href='javascript:google.maps.event.trigger(gmarkers[" + parseInt(gmarkers.length - 1) + "],\"click\");'>" + place.name + "</a><br>" + '<div class="raty" />' + "</br>"; $(side_bar_h

这里我有一个创建侧栏的代码:

var side_bar_html = "<a href='javascript:google.maps.event.trigger(gmarkers[" + parseInt(gmarkers.length - 1) + "],\"click\");'>" + place.name + "</a><br>" + '<div class="raty" />' + "</br>";

$(side_bar_html).appendTo('#side_bar').filter('.raty').raty({
    score : place.rating,
    path : 'http://wbotelhos.com/raty/lib/img'
})
var-side\u-bar\u-html=“
”+“”+”
”; $(side_bar_html).appendTo('#side_bar').filter('.raty').raty({ 分数:place.rating, 路径:'http://wbotelhos.com/raty/lib/img' })
如何从这段代码创建一个函数来创建一个带有函数的边栏

比如说:

function Create_a_sidebar_and_put_it_into_ID#sidebar () {
//for every marker to return html string
 return "<div class='element'>"+place.name+"</br>"+place.rating+"</div>" + etc...
函数创建一个侧栏并将其放入侧栏(){
//为每个标记返回html字符串
返回“+place.name+”
“+place.rating+”+等。。。
因为我在创建html时遇到了问题,我不知道在哪里添加什么,我也无法控制它


有可能吗?

如果我正确理解了你的问题,你是在问如何使用你的第一个代码块来为某个地方创建评级,并对其进行重构,这样你就可以随意为某个地方创建侧栏。这就是我将如何回答这个问题的方法

正如@Sime Vidas所提到的,您可以从创建边栏本身的代码开始,并使其成为下面这样的函数。我对该函数进行了一些修改,将javascript从
href
属性中去掉(这通常被认为是一种不好的做法),并将html字符串传递到
$.fn.init
(我发现使用DOM方法创建元素会严重降低性能)。在
a
元素之后也不需要

,因为默认情况下
div
是块元素

function createSidebar(place) {
    var $sidebarLink = $(document.createElement('a'));
    var $raty = $(document.createElement('div'));

    $sidebarLink.attr('href', '#').text(place.name).click(function(evt) {
        evt.stopPropagation();
        google.maps.events.trigger(gmarkers[parseInt(gmarkers.length - 1, 10)], 'click');
    });
    $raty.addClass('raty').raty({
        score: place.rating,
        path: 'http://wbotelhos.com/raty/lib/img'
    });
    return $([$sidebarLink, $raty]);
}
现在你可以做像这样的事情

var $sidebar = $('#side_bar');
places.map(createSidebar).forEach(function($sidebarPart) { 
    $sidebar.append($sidebarPart);
});

很抱歉,如果我回答您的问题时偏离了正轨,但我想这就是您所问的。如果您不愿意留下评论,我们可以进一步讨论!

1.将代码放入函数中,2.调用函数,3.?,4.Profit只需做3.就这么简单。