在原始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? 感谢
答案 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。