Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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
Javascript jQuery:访问唯一父对象中包含的唯一对象?_Javascript_Jquery_Containers_Parent - Fatal编程技术网

Javascript jQuery:访问唯一父对象中包含的唯一对象?

Javascript jQuery:访问唯一父对象中包含的唯一对象?,javascript,jquery,containers,parent,Javascript,Jquery,Containers,Parent,假设以下布局: <span class="container"> <video class="video"> <source ... /> </video> <div class="controls"> <div class="play">Play</div> </div> </span> 假设页面上的视频数量或“控件”的子

假设以下布局:

<span class="container">
    <video class="video">
        <source ... />
    </video>
    <div class="controls">
        <div class="play">Play</div>
    </div>
</span>
假设页面上的视频数量或“控件”的子父对象没有限制。这意味着我不想使用
$(this).parent().parent().find('.video')

似乎很适合这里

$(this).closest('.container').find('.video');
这个看起来很适合这里

$(this).closest('.container').find('.video');

我只想在链接上添加一个带有视频参考的数据元素: 玩 然后

var video = $(this).data('ref');

我只想在链接上添加一个带有视频参考的数据元素: 玩 然后

var video = $(this).data('ref');
应该有用

应该可以工作。

您可以使用获取上一个元素,因此无论父容器中有多少视频和/或控件元素,这都可以工作

var video = $(this).parent().prev();
崩溃

$(this)
获取“play”类div

.parent()
获取“控件”类div

.prev()
获取上一个元素(即匹配的“video”类div)

您可以使用获取上一个元素,因此无论父容器中有多少视频和/或控件元素,此操作都会起作用

var video = $(this).parent().prev();
崩溃

$(this)
获取“play”类div

.parent()
获取“控件”类div

.prev()
获取上一个元素(即匹配的“video”类div)

类似这样的内容:

var video = $('video', $(this).parentsUntil('span', '.container'));
大概是这样的:

var video = $('video', $(this).parentsUntil('span', '.container'));

你的问题不清楚。也许你在找
$(这个)。最近的('.video')
?你的问题不清楚。可能您正在查找
$(this).closest('.video')
?OP表示“.container”元素中可能有多个“.video”。OP表示“.container”元素中可能有多个“.video”