Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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创建的元素?_Javascript_Jquery - Fatal编程技术网

$(这个)不适用于javascript创建的元素?

$(这个)不适用于javascript创建的元素?,javascript,jquery,Javascript,Jquery,我不明白为什么我的脚本不能工作。以下是简单的表格: <table> <tr> <th>Name</th> <td>Paul Stevenson</td> </tr> <tr> <th>Date</th> <td>28. 09. 1978</td> </tr> </table>

我不明白为什么我的脚本不能工作。以下是简单的表格:

<table>
  <tr>
    <th>Name</th>
    <td>Paul Stevenson</td>
  </tr>
    <tr>
    <th>Date</th>
    <td>28. 09. 1978</td>
  </tr>
</table>
为什么是我的变量

var thisNext = $(this).parent().next().text();
不获取td文本并且不将其添加到链接


您还可以看到,您试图在处理程序外部使用
,因此
未设置为您认为的设置。内部
$('th')。在(“mouseenter mouseleave”)上,函数(e){
指正在执行的
th
——在您的示例中,您只是尝试访问
,并假设它指的是您想要的。

当您在函数内部执行$(此)时

$('th').on("mouseenter mouseleave", function(e) {
然后$(this)指向th元素,但是当您访问$(this)以获取文本时

var thisNext = $(this).parent().next().text();
它在函数之外,这里$(this)指向窗口对象

如果您需要在此处使用适当的选择器选择文本,请在此处查看更多信息

这是您尝试实现的更新代码

$('th').on("mouseenter mouseleave", function(e) {

  if (e.type === 'mouseenter') { 

    var toolbar = $("<div />").css({
      "padding": "5px",
      "background" : "#F8F8F8",
      "position" : "absolute",
      "borderRadius" : "5px 0 5px 5px",
      "left" : "-30px",
      "top" : "0",
      "zIndex" : "99"
    });

    var link = $("<a />").css({
        "display" : "block",
        "height" : "20px",
        "width" : "20px",
        "marginBottom" : "5px",
        "background-size" : "100%",
        "position" : "relative"}).attr({
          "target" : "_blank"
    });
    var thisNext = $($(this).parent().children('td')[0]).text();
    var gmaps = link.clone().css({"background" : "red"}).attr({
        href: 'https://www.google.cz/search?q=' + thisNext });
    toolbar.append( gmaps );
    $(this).append( toolbar ); }
    else 
    { 
      $(this).children('div').remove();
    }
  });
$('th')。在(“mouseenter mouseleave”,函数(e)上{
如果(e.type==='mouseenter'){
变量工具栏=$(“”)。css({
“填充”:“5px”,
“背景”:“f8”,
“位置”:“绝对”,
“边界半径”:“5px 0 5px 5px”,
“左”:“-30px”,
“顶部”:“0”,
“zIndex”:“99”
});
变量链接=$(“


希望这能对您有所帮助。

您到底想做什么?
var thisNext=…
不在事件处理程序中。
this
Window
编写它的地方。所以我应该把它做成$('th')。on(“mouseenter mouseleave”,函数(e){var thisNext=$(this.parent().next().text();如果(e.type=='mouseenter'){$(this).append(toolbar);}else{$(this).find($('div”).remove()});toolbar然后不要追加。检查上面更新的答案我对你的函数做了一些更改。希望这对你有用。所以我应该做这个?$('th')。在(“mouseenter mouseleave”,函数(e){var thisNext=$(this)。父().next().text();if(e.type=='mouseenter'){$(this.append(toolbar);}else{$(this.find($('div”)).remove()});toolbar不追加。
var thisNext = $(this).parent().next().text();
$('th').on("mouseenter mouseleave", function(e) {

  if (e.type === 'mouseenter') { 

    var toolbar = $("<div />").css({
      "padding": "5px",
      "background" : "#F8F8F8",
      "position" : "absolute",
      "borderRadius" : "5px 0 5px 5px",
      "left" : "-30px",
      "top" : "0",
      "zIndex" : "99"
    });

    var link = $("<a />").css({
        "display" : "block",
        "height" : "20px",
        "width" : "20px",
        "marginBottom" : "5px",
        "background-size" : "100%",
        "position" : "relative"}).attr({
          "target" : "_blank"
    });
    var thisNext = $($(this).parent().children('td')[0]).text();
    var gmaps = link.clone().css({"background" : "red"}).attr({
        href: 'https://www.google.cz/search?q=' + thisNext });
    toolbar.append( gmaps );
    $(this).append( toolbar ); }
    else 
    { 
      $(this).children('div').remove();
    }
  });