Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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_Html_Css - Fatal编程技术网

Javascript Jquery-从最近的元素复制文本

Javascript Jquery-从最近的元素复制文本,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有下面的代码 <div class="container"> <header> <p>Space filler text blah blah blah blah blah blah blah blah blah</p> <div class="copied-text"> Space for text A </div> </header> <section

我有下面的代码

<div class="container">
  <header>
    <p>Space filler text blah blah blah blah blah blah blah blah blah</p>
    <div class="copied-text">
       Space for text A
    </div>
  </header>

  <section>
    <h6>
      <a>Text A</a>
    </h6>
  </section>
</div>

<div class="container">
  <header>
    <p>Space filler text blah blah blah blah blah blah blah blah blah</p>
    <div class="copied-text">
       Space for text B
    </div>
  </header>

  <section>
    <h6>
      <a>Text B</a>
    </h6>
  </section>
</div>
我也尝试了下面的代码,但这似乎不起作用。 $('div.copied-text').html($(this).parent().sibbins().children('h6').children('a').text())

如果有帮助的话,我已经在JSFIDLE中设置了它 这是一个工作示例,但是在我的项目中,一个页面上有许多div.container元素,因此需要解决方案来适应每个容器


非常感谢您的帮助:)

使用
.container
作为您的家长:

$(document).ready(function() {
  $(".container").each(function () {
    $this = $(this);
    $this.find(".copied-text").html($this.find("h6 a").text());
  });
});
不使用
的更简单或替代版本。每个
将:

$(function () {
  $(".copied-text").html(function () {
    return $(this).closest(".container").find("h6 a").text();
  });
});
工作片段

$(文档).ready(函数(){
$(“.container”).each(函数(){
$this=$(this);
$this.find(“.copied text”).html($this.find(“h6 a”).text());
});
});
.container{
边框:1px纯蓝色;
高度:200px;
边缘底部:10px;
宽度:200px;
}
标题{
背景色:红色;
}
部分{
背景颜色:黄色;
}
.复制的文本{
背景色:青色;
最小高度:30px;
宽度:100%;
}

空格填充文字等等等等等等等等等等等等

文本A的空格 文本A 空格填充文字等等等等等等等等等等等等

文本B的空格 文本B
.container
用作父容器:

$(document).ready(function() {
  $(".container").each(function () {
    $this = $(this);
    $this.find(".copied-text").html($this.find("h6 a").text());
  });
});
不使用
的更简单或替代版本。每个
将:

$(function () {
  $(".copied-text").html(function () {
    return $(this).closest(".container").find("h6 a").text();
  });
});
工作片段

$(文档).ready(函数(){
$(“.container”).each(函数(){
$this=$(this);
$this.find(“.copied text”).html($this.find(“h6 a”).text());
});
});
.container{
边框:1px纯蓝色;
高度:200px;
边缘底部:10px;
宽度:200px;
}
标题{
背景色:红色;
}
部分{
背景颜色:黄色;
}
.复制的文本{
背景色:青色;
最小高度:30px;
宽度:100%;
}

空格填充文字等等等等等等等等等等等等

文本A的空格 文本A 空格填充文字等等等等等等等等等等等等

文本B的空格 文本B
使用,以便可以迭代到每个匹配的元素:

$('div.copied-text').html(function(_,txt){
 //set the text for each .copied-text
  txt = $(this).parents('header') //find closest header
        .next() //next section element from header
        .find('a').text(); //find the link text
});
使用,以便可以迭代到每个匹配的元素:

$('div.copied-text').html(function(_,txt){
 //set the text for each .copied-text
  txt = $(this).parents('header') //find closest header
        .next() //next section element from header
        .find('a').text(); //find the link text
});

我在我的一个项目中开发了一个解决方案,找到了最接近鼠标位置的元素

1) 使用了最近的插件-

2) 视口插件用于-

3) 调用函数是:

getNearestElementInView: function($element, eventData) {
        $element = $.nearest({
            x: eventData.pageX || 0,
            y: eventData.pageY || 0,
            sort: 'nearest',              

        }, $element.selector);

        return $element.filter(function() {
            return $.inviewport(this, { threshold: 0 });
        }).first();

    }
其中,
$element
是您选择的元素,
eventData
是jquery事件对象

您可以调用如下函数:

$(your_element_selector).on('mouseenter',function(ev){
getNearestElementInView($(this),ev);
});
希望这有帮助


享受:)

我在我的一个项目中开发了一个最接近鼠标位置元素的解决方案

1) 使用了最近的插件-

2) 视口插件用于-

3) 调用函数是:

getNearestElementInView: function($element, eventData) {
        $element = $.nearest({
            x: eventData.pageX || 0,
            y: eventData.pageY || 0,
            sort: 'nearest',              

        }, $element.selector);

        return $element.filter(function() {
            return $.inviewport(this, { threshold: 0 });
        }).first();

    }
其中,
$element
是您选择的元素,
eventData
是jquery事件对象

您可以调用如下函数:

$(your_element_selector).on('mouseenter',function(ev){
getNearestElementInView($(this),ev);
});
希望这有帮助

享受:)