【发布时间】:2011-05-12 12:06:15
【问题描述】:
场景:
我有一个包含链接的菜单:
Main Menu Item
--------------
Sub: Show Grid > SubSub: <a>Show #first</a>
<a>Show #second</a>
<a>Show #third</a>
现在我需要找到所有带有 css #ID 的 div,它们是 .container div 中的第一级 DOM 元素。这些元素应附加到“子:显示网格”并通过单击添加一个类。
<!-- The mark up -->
<div class="container">
<div id="first">1st</div>
<div id="second">2nd</div>
<div id="third">3rd</div>
</div>
问题:
- 如何使用 jQuery 找到具有(未定义/未知)
#ID的第一级 div? - 如何与 php 中的结果进行交互 - 我会得到一个数组作为结果来构建 SubSub 菜单吗?
提前致谢!
编辑#1
为了更清楚我要做什么 - 使用伪代码:
$divs_received_from_jquery_fn = 'how do I get the divs (IDs?) as array(?) and interact with them in the following code?';
foreach ( $divs_received_from_jquery_fn as $div )
{
add_menu_item( array(
'parent' => 'Sub: Show Grid'
,'name' => 'Show #'.$div
,'href' => ''
,'meta' => array(
'onclick' => 'jQuery(".container #".$div).toggleClass("showgrid");'
)
) );
}
编辑#2
“现实世界”的例子。输出是 a-link 的 onclick 事件。我的问题是我想为.container div 下方的每个div[id] 调用函数foreach,并且根本不知道如何与javascript 和php 正确交互。
?>
<script type="text/javascript">
jQuery(".container > div[id]").each(function(){
var context = $(this);
<?php
// SHOWGRID - parts
// @since v0.3
$wp_admin_bar->add_menu( // trigger the function via the global $wp_admin_bar var that calls the class
array(
'parent' => 'showgrid' // parent menu item
,'id' => 'showgrid - ' + this.id // menu item ID
,'title' => sprintf( // menu item label
__( '%1$s show grid parts %2$s%3$s', OXO_TEXTDOMAIN )
,'<span style="background: none;">'
,'<span class="showgridparts-on hide">✔</span>'
,'<span class="showgridparts-off">×</span>'
)
,'href' => '' // stays empty to not trigger anything
,'meta' => array( // HERE GOES THE ACTUAL jQuery FUNCTION
'onclick' => 'jQuery("#" + this.id).toggleClass("showgrid"); jQuery(".showgridparts-on").toggleClass("hide"); jQuery(".showgridparts-off").toggleClass("hide"); return false;'
)
)
);
?>
});
</script>
<?php
【问题讨论】: