这篇文章是一个多部分的问题,但基本上我用我的产品加载一系列对象。我想要做的是创建一个按钮列表,如下所示:
<?php foreach($records as $product): ?>
<div><?php echo $product->name; ?></div>
<?php endforeach; ?>
在每个按钮上单击我想要将信息更改为相应的产品。我的问题是,在Javascript中访问这个php数组的最佳方法是什么?我应该把它转换成json吗?
其次,我在原型中使用什么来使所有这些div标签都有点击事件,我将如何识别产品?我应该检索点击按钮的订单号并从json获取信息吗?那么,如果单击数组中的第3个按钮,我在json中得到第3个条目?
我正在尝试学习原型,因为我喜欢效果,而不是jquery。
答案 0 :(得分:0)
无论您使用的javascript工具包是什么,要访问HTML元素,请使用id=
属性来唯一标识它们,并class=
将它们放入公共组。然后使用您选择的工具包的相应函数来检索它们。
<div id="product1" class="product">Product 1</div>
<div id="product2" class="product">Product 2</div>
<div id="product3" class="product">Product 3</div>
对于jQuery,您可以使用,例如,获取标识为product1
的元素:
var el = $("#product1");
等等。在原型中,这只是
var el = $("product1");
要获得所有产品,您可以在课堂上获得这些产品。在jQuery中:
var all = $(".product");
和原型:
var all = $$(".product");
答案 1 :(得分:0)
我建议反对使用Prototype。我是Prototype + Scriptaculous的早期采用者并且做了很多工作。到2009年,很明显他们失去了开发社区的思想共享,并且jQuery赢了。我不情愿地转向了jQuery。
我发现jQuery语法更清晰,文档更好,社区更大,可用资源更多,其中包括人们可以回答像你这样的问题。
虽然Scriptaculous非常棒,但是jQuery的效果插件也同样多。话虽这么说,这是如何解决你的问题......
是的,我会使用JSON定义内容。
这会创建一个新按钮:
var inputId = "myInput";
var elementName = "Price";
var elementValue = "1.99";
$(element).insert(new Element("input", {type:'button', id:inputId, name:elementName, className:'FBButton', value:elementValue }))
这挂钩事件:
$(inputId).observe('click', function() {...your code ...});
这是我很久以前写过的基于JSON / Prototype的表单生成器的链接,但从未使用过。你可以自由地窃取代码。