如何在海边的表数据上方返回表格标题的值?

时间:2013-01-24 14:47:53

标签: javascript jquery ajax smalltalk seaside

在原始jQuery中,您可以使用

var $th = $td.closest('table').find('th').eq($td.index());

但是,如何将$th返回海边,以便我可以将它作为字符串用于我想要的任何结果? 实施例。

val do:[:e |
e class = Dictionary ifTrue:[
                        html tableData 
                        onDoubleClick: (html javascript alert: 'double clicked column'); 
                        with:[self renderTargets: e on: html]
                           ]
         ]

所以基本上我想要的价值是:

(((html jQuery this) next: 'td') closest: 'table'; find: 'th'; eq: ((html jQuery this) next: 'td') index; html).

并将其放在

的末尾
...column', thValue);

我不太了解javascript,jquery或ajax,在海边以外。

WWLD? 感谢

1 个答案:

答案 0 :(得分:1)

要将网页中的值传递回服务器,您可以使用jQuery进行ajax回调。有点像:

html tableData 
      onDoubleClick: (html jQuery ajax 
                            callback: [:v | .. do something with v... ]
                            value: ((((html jQuery this)) closest: 'table') find: 'th' ...)

#callback:value:消息的第一个参数(即回调块)将在服务器端使用其第二个参数(即javascript表达式)的客户端评估值进行评估。

看一下JQAjax层次结构。您会注意到#callback:value:方法的许多变体(例如,使用json,乘客等......)。

此外,您可以将#callback:value:callback与响应呈现ajax回调(如#script :)结合使用来执行脚本客户端。您甚至可以在不同的回调块之间传递值:

html jQuery ajax
      callback: [:v | theValue := v]
      value: ((((html jQuery this)) closest: 'table') find: 'th' ...);
      script: [:s | s << (s alert: theValue)]

上面的代码将从jQuery表达式获取值,将其序列化到服务器,将其存储在变量theValue中,然后呈现一个javascript响应,生成一个显示该值的警告对话框。 这显然只是为了证明什么是可能的。在此示例中,对服务器的回调相当无用。如果您不需要值服务器端,则在客户端上使用纯Javascript。