在使用smarty时怎么将php数据传入js中

<ol>
{section name=s loop=$arr}
<li id="{$arr[s].id}"><a href='{$arr[s].link}{$arr[s].id}'>{$arr[s].title}</li>
{/section}
</ol>
这个是一个用smarty模板引擎下的一个模板文件,现在我要用jquery获取<li id="{$arr[s].id}">的id值来做一些效果怎么弄?求大神指教!

第1个回答  推荐于2016-07-29
<ol>
  {section name=s loop=$arr}
  <script>
    var id = {$arr[s].id};
  </script>
    <li id="{$arr[s].id}"><a href='{$arr[s].link}{$arr[s].id}'>{$arr[s].title}</li>
  {/section}
</ol>

懂了么?

追问

这样的话,我的js页面是链接进来的,这样可以吗?

追答

刚才理解错你问题了
如果你是想在外部的js中控制模版生成的dom元素的话,就很简单了
只要写在document.ready中就可以了
把jquery代码写在
$(function() {

})
中间就能访问到的

追问

假如这个是js文件,我模板那样写后怎么获得 var id的值放在下面的选择器中?$(document).ready(function(){$("#id").mouseover(function(){$(this).hide();});});
如果是这样的呢?

追答

这下理解你问题了。。

这其实算是个设计结构的问题吧

如果你想设置没有具体指向,但是普遍适用的结构,可以写在外部的js中

例如,要给这些li都添加一些效果,你可以在外部js中这么做

$("ol > li").on("mouseover",function() {
    $(this).hide();
    //do otherthing;
});

如果是有例外的情况,需要根据具体元素的具体参数进行具体操作的话

 <li id="{$arr[s].id}" onMouseover="doSomething({$arr[s].id})"><a href='{$arr[s].link}{$arr[s].id}'>{$arr[s].title}</li>

function doSomething(id) {
    $("#"+id).hide();
    //do otherthing;
}

本回答被提问者采纳
第2个回答  2014-01-13
直接把php句柄放入js里即可 如 模板<script> var str =<{$str}>;</script>追问

假如这个是js文件,我模板那样写后怎么获得 var id的值放在下面的选择器中?
$(document).ready(function(){
$("#id").mouseover(function(){
$(this).hide();
});
});

追答

$('#id'+).click({});

追问

没有反应。

追答

那就用动态绑定
$("ol li").mouseover(function(){
$(this).hide();
});

追问

这样的话如果是导航栏,里面的效果都一起变了。如果要做其中一个怎么办?

追答

换成这个 $("ol li").each()

第3个回答  2014-01-13
同求。。。刚刚接触php。
第4个回答  2014-01-13
和你普通的用jq拿id值一个鸟样追问

我jq是个新手,请问这个具体要怎么拿?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网