Javascript 在JQuery中获取clicked元素

Javascript 在JQuery中获取clicked元素,javascript,jquery,mouseevent,Javascript,Jquery,Mouseevent,我正在使用下面的代码获取所选文本,我的问题是,如何获取所选文本所在的元素?我有100行10列,我想得到td和tr对象,我想检查文本是否在表中被选中 function getSelectedText() { var t = ''; if(window.getSelection){ t = window.getSelection(); }else if(document.getSelection){ t = document.getSelection(); }else

我正在使用下面的代码获取所选文本,我的问题是,如何获取所选文本所在的元素?我有100行10列,我想得到td和tr对象,我想检查文本是否在表中被选中

function getSelectedText() {
  var t = '';
  if(window.getSelection){
    t = window.getSelection();
  }else if(document.getSelection){
    t = document.getSelection();
  }else if(document.selection){
    t = document.selection.createRange().text;
  }
  return t;
}
$(document).bind("mouseup", putSelectedToInput);

function putSelectedToInput(){
  var st = getSelectedText();

  if(st!=''){
    $("#params_oldname").val($.trim(st));
  }
}
这有用吗

这有帮助吗

您需要检查。请注意,如果每个表单元格中有一个或多个子元素,则需要从
event.target
向上遍历DOM树,直到到达
td
元素(或者不是,在这种情况下,单击位于单元格外部)。

需要检查。请注意,如果每个表单元格中有一个或多个子元素,则需要从
event.target
向上遍历DOM树,直到到达
td
元素(或者不是,在这种情况下,单击位于单元格外部)。

只需使用:

document.onclick=function(){
elem = window.event.srcElement
}
现在,在中单击的td或tr元素存储在名为elem的全局变量中。 请注意,这将返回用户单击的每个元素,因此您必须检查它是td还是tr元素,如下所示:

if(elem.tagName.toLowerCase() == "td" || elem.tagName.toLowerCase() == "tr")
只需使用:

document.onclick=function(){
elem = window.event.srcElement
}
现在,在中单击的td或tr元素存储在名为elem的全局变量中。 请注意,这将返回用户单击的每个元素,因此您必须检查它是td还是tr元素,如下所示:

if(elem.tagName.toLowerCase() == "td" || elem.tagName.toLowerCase() == "tr")

通过执行以下操作,可以在mouseup事件中获取单击的元素:

function putSelectedToInput(event){ // notice the event parameter

    var $clickedElement = $(event.target);
单击的元素可以是td内的任何元素。您可以通过以下方式获得td本身:

// returns the closest parent that is a td (or the element itself if it's a td)
var $theTd = $clickedElement.closest('td');

请参见和

通过执行以下操作,可以在mouseup事件中获取单击的元素:

function putSelectedToInput(event){ // notice the event parameter

    var $clickedElement = $(event.target);
单击的元素可以是td内的任何元素。您可以通过以下方式获得td本身:

// returns the closest parent that is a td (or the element itself if it's a td)
var $theTd = $clickedElement.closest('td');

请参见和

而不是绑定
mouseUp
,了解为
td
元素绑定的文档

$('td').mouseUp(function(){
 var selectedTd=$(this);
});

不是为文档绑定
mouseUp
,而是为
td
元素绑定它

$('td').mouseUp(function(){
 var selectedTd=$(this);
});

Jquery的.mouseUp已被弃用。改为使用.click。不推荐使用Jquery的.mouseUp。使用。改为单击。