Javascript 从当前事件目标的事件对象中提取选择器(将对象名称获取为字符串)

Javascript 从当前事件目标的事件对象中提取选择器(将对象名称获取为字符串),javascript,jquery,Javascript,Jquery,我正试图从事件.currentTarget(例如,ginput#lst-ib.gsfi)中提取选择器。我可以找到其他属性,如event.currentTarget.baseURI。我可以知道如何获取输入#lst-ib.gsfi?以下控制台输出包含有关该对象的所有详细信息。我可以将originalEvent.path作为对象数组获取。但不确定如何获得标题/名称(无论它叫什么) 非常感谢你的帮助 currentTarget:input#lst-ib.gsfi accept:"" ac

我正试图从
事件.currentTarget
(例如,g
input#lst-ib.gsfi
)中提取选择器。我可以找到其他属性,如
event.currentTarget.baseURI
。我可以知道如何获取
输入#lst-ib.gsfi
?以下控制台输出包含有关该对象的所有详细信息。我可以将
originalEvent.path
作为对象数组获取。但不确定如何获得标题/名称(无论它叫什么) 非常感谢你的帮助

currentTarget:input#lst-ib.gsfi
    accept:""
    accessKey:""
    align:""
    alt:""
    assignedSlot:null
    attributes:NamedNodeMap {0: class, 1: id, 2: maxlength, 3: name, 4: autocomplete, 5: title, 6: type, 7: value, 8: aria-label, 9: aria-haspopup, 10: role, 11: aria-autocomplete, 12: dir, 13: spellcheck, 14: style, class: class, id: id, maxlength: maxlength, name: name, autocomplete: autocomplete, …}
    autocapitalize:"sentences"
    autocomplete:"off"
    autofocus:false
    baseURI:"https://www.google.ca/search?ei=fnSHWtmQOcPcswWo67yYBA&q=get+object+name+javascript&oq=getobject+name+&gs_l=psy-ab.3.0.0i22i30k1l10.2185.66281.0.69197.18.18.0.0.0.0.201.1902.4j12j1.17.0....0...1.1.64.psy-ab..1.17.1900...0j46j33i160k1j33i21k1j35i39k1j0i131i67k1j0i131k1j0i67k1j0i46k1j0i20i263k1j0i10k1.0.rFRsim4bz6g"
    checked:false
    childElementCount:0
    childNodes:NodeList []
    children:HTML

我认为选择器是合成的:
input
是一个标记,
#lst ib
是一个ID,
.gsfi
是一个类。因此,您需要获取这些属性并将它们组合到该选择器中

比如:

var el =  event.currentTarget;  
var selector = el.tagName.toLowerCase() + '#' + el.id + '.' + el.className;

当然,您需要添加不同的检查并处理乘法类和ID或类的缺席

可能的重复,我正在尝试获取当前目标元素的事件选择器。不应该是重复的。这里的问题还在于从dom对象获取所需的值。我们知道如何获取对象的属性值,但currentTarget:input#lst-ib.gsfi这与currentTarget.alt或其他内容不同,谢谢。如果您有当前DOM元素,为什么需要选择器?如果要构造一个选择器来选择特定的元素,为什么不能直接使用该元素呢?关于您实际尝试实现的内容的上下文可能会让我们给您一个有用的答案。我正在构建一个chrome扩展,它需要捕获事件和目标元素作为字符串。谢谢@Spoonmiser您知道如何将选择器设置为字符串吗?如果您已经意识到#ID必须是唯一的,请大声告诉其他人,就像Highlander“只能有一个”。因此,如果您有有效的HTML(即文档上没有重复的id,例如
index.HTML
),那么只需查找
#id
。如果您可以找到
#lst-ib
,那么您已经找到了
input#lst-ib.gsfi
。如果您已经知道
currentTarget
是事件注册到的元素(即eventListener),那么我会为其他人说这个out load,它通常不会不断更改。这听起来像是你想要的
event.target
,它是被点击的元素。谢谢你的评论。但是如何直接获取输入#lst-ib.gsfi?我的问题是我可能捕获具有多个id或类的元素。我正在考虑获取写在currentTarget对象旁边的选择器。为什么您决定“input#lst-ib.gsfi”直接存在?它只是由标记名、ID和类名组成的元素的标识符。ID总是一个-在乘法ID的情况下-只取第一个,在乘法类的情况下,你只需用一个点连接它们,比如“.firstclass.secondclass.onemoreclass”我很确定你的例子来自chrome开发工具,然后取这个元素“currentTarget:input#lst-ib.gsfi”,打开开发工具,尝试添加更多ID、更改类等等,看看选择器是如何变化的。但这只是一个例子。我将从任何网站动态捕获选择器。例如,一个人在文本框中键入,然后我将捕获输入元素的选择器和值。我需要选择器和值。我将把它们存储在数据库中以供研究之用。