在页面中的任何地方的javascript中找到鼠标指针下的单词

时间:2012-11-27 14:24:54

标签: javascript jquery

我可以通过使用此代码找到元素的文本。但是如果鼠标在该单词上停留一段时间,我想在页面的任何位置找到一个单词。

$(document).bind("mouseover", function (e) {
    var event = e;
    setTimeout(function () { $(event.target).contents().each(function(index, elem) {
        if( elem.nodeType === 3 && $.trim(elem.nodeValue).length ) {
            var text = $.trim(elem.nodeValue);
            text = text.split(" ");
            console.log($.trim(elem.nodeValue));
            //alert($.trim(elem.nodeValue));
            return false;
         }
      });
   }, 5000);

});

2 个答案:

答案 0 :(得分:5)

这可能不是有史以来最好的代码,但它可能会让你走上正确的轨道,取消了andyb的评论。

这样的东西
$(".first").on("hover",function(){

  var words = $(this).text().split(" ");

  var fullText = "";

  for(i=0;i<words.length;i++){
    words[i] = "<span>"+words[i]+"</span> "; 
    fullText += words[i];
  }  

  $(this).text("").append(fullText);

  $(this).children("span").on("hover", function(){
    $(".second").text($(this).text());
  });

});

虽然查看working example是您最好的选择。

答案 1 :(得分:0)

   $(document).bind("mouseover", function (e) {
      var event = e;
      setTimeout(function () { $(event.target).contents().each(function(index, elem) {
      if( elem.nodeType === 3 && $.trim(elem.nodeValue).length ) {
      var text = $.trim(elem.nodeValue);
      text = text.split(" ");
      var words = (elem.nodeValue).split(" ");

      var fullText = "";

      for(i=0;i<words.length;i++){
          words[i] = "<span>"+words[i]+"</span> ";
          fullText += words[i];
      }

      $(event.target).html("").append(fullText);

      $(event.target).children("span").on("hover", function(){
          //$(".second").text($(this).text());
          console.log($(this).text());
       });
          console.log($(event.target).html());

          return false;
       } //alert($(event.target).text()+$(event.target).html());
   });}, 

10000); });

现在我的代码就是这个....并且工作得很好。但问题是,现在,如果一个锚标签或

标签在某些文字之后有chailds标签或span标签,它就会捡起来文本解析它并忽略子节点....... :( ....我想选择这些子节点...为每个单词和外部文本放置span标签