jQuery组合多个元素

jQuery combine multiple elements

本文关键字:元素 组合 jQuery      更新时间:2023-09-26

我在试验jQuery时遇到了一个问题。我可以使用actual selector与现有的element作为jQuery的组合选择器?

那么,假设我已经动态创建了一个DIV元素:

var $div = $('<div>')
               .css('position', 'absolute')
               .hide();    // Just to be short
$('body').append($div);

当用户将鼠标悬停在P元素/段落(在光标位置)上时,我想显示它:

$('p').hover(function(e) {
    // Change the position of $div with regards of cursor position
    $div.show();
}, function(e) {
    $div.hide();
});

BUT我也想把这个hover处理程序应用到$div本身。所以我不想重复我的代码,我想这样做:

$('p', $div).hover(...)

将选择$div元素和所有P元素。

我知道我可以单独编写函数,并将名称作为参数传递给hover函数。

在jQuery中有解决这种情况的方法吗?或者有更准确的解决方案吗?

你可以使用jQuery的add方法:

$('p').add($div).hover(function(e) { ...

如果你有多个元素要合并,你不希望这样做

$('p').add($div1).add($div2).add($div3).add($div4).add($div5).add($div6) ...

你想把JavaScript数组转换成jQuery对象

$( $.map([x,y,z], a => [...$.makeArray(a)]) )

来源:合并jQuery对象