Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用jQuery(wordpress)以动态命名的元素ID为目标_Php_Jquery_Wordpress - Fatal编程技术网

Php 如何使用jQuery(wordpress)以动态命名的元素ID为目标

Php 如何使用jQuery(wordpress)以动态命名的元素ID为目标,php,jquery,wordpress,Php,Jquery,Wordpress,我正在构建一个wp主题,它调用所有制作到主页的页面。这些页面(post)id是使用以下php动态命名的id=“post-”它们最终被命名为#post-1、#post-2、#post-3等 每个实例在最小化状态下被调用到主页,但每个实例都有一个按钮,允许用户最大化该部分的内容。我是通过在单击按钮时使用jQuery向嵌套在该部分中的某些元素添加类来实现这一点的 问题是我不知道如何只隔离嵌套按钮的部分。当前,当用户单击该按钮时,它会将该类添加到主页上的每个实例中(主页上调用的每个页面(post)) 有

我正在构建一个wp主题,它调用所有制作到主页的页面。这些页面(post)id是使用以下php动态命名的
id=“post-”
它们最终被命名为#post-1、#post-2、#post-3等

每个实例在最小化状态下被调用到主页,但每个实例都有一个按钮,允许用户最大化该部分的内容。我是通过在单击按钮时使用jQuery向嵌套在该部分中的某些元素添加类来实现这一点的

问题是我不知道如何只隔离嵌套按钮的部分。当前,当用户单击该按钮时,它会将该类添加到主页上的每个实例中(主页上调用的每个页面(post))

有人知道我如何编写一些jQuery,使我能够使用动态命名的posts分别针对每个部分,而无需在jQuery函数中实际键入
\post-1、\post-2、post-3等。

以下是我所做工作的简化版本:

$('.open entry')。单击(函数(){
$(“.home article”).addClass(“open”);
});
.content{display:none;}
#home-article.open.content{display:block;}


根据您的示例,有几种方法可以从按钮的上下文开始隔离
部分

如果结构始终为
,则从按钮开始,您可以向上移动两个父级:

$("button").click(function() {
  var thePost = $(this).parent().parent();
  ...
});
如果按钮上方只有一个
section
元素,则可以查找属于section元素的父元素:

$("button").click(function() {
  var thePost = $(this).parents("section");
  ...
});
如果要查找ID以“post-”开头的父级,可以将ID视为属性,并使用“attribute start with”选择器:

$("button").click(function() {
  var thePost = $(this).parents("[id^=post-]");
  ...
});

使用遍历。在事件处理程序中,此
引用在上发生的元素事件。考虑到这一点,您可以遍历所需的dom部分

closest()
可以将您带到主
,然后从那里可以使用
find()
查看该实例

$('.open-entry').click(function(){
    var $article = $(this).closest(".home-article").addClass("open");
    $article.find('.content').doSomething();
});

你能举一个简单的例子说明你现在正在做什么吗?添加了一个例子,谢谢!谢谢你,艾德!也许我误解了它的工作原理,但是每个实例都有一个以
post-
开头的名称,因此,据我所知,仍然会将类添加到页面上的每个实例中。我要寻找的是,当有人单击名为post-1的部分中嵌套的按钮时,它只会将类添加到名为post-1.Hmm的部分中嵌套的元素中;看不到一个例子就很难说。如果您的按钮是
元素,您可以执行如下操作:
$(“按钮”)。单击(function(){$(this).parents(“[id^=post-]”。which();})如果这不是你想要的,你能用按钮发布一个简单的ish示例吗?我添加了一个我正在做的简化版本,谢谢!是的,这就是我要找的
{$(this).parents([id^=post-])。which();}
谢谢!如果你能把它写进答题表,我可以接受。