为了识别用户正在点击的元素,我试图使用事件对象target
。无法将event.target转换为字符串
$(document).click(function (e) {
var str = e.target.toString();
console.log(str);
if (str.indexOf("some class or id") >= 0) {
//do something
};
});
然而.toString()
似乎并没有对e.target
一个有用的效果。如果我这样做:
console.log(e.target);
我得到一个字符串,其中包含DOM元素的开头,例如<div class="myclass">
。这是必要的,以检查是否有子的存在,例如myclass
“或myid
,使用indexOf
。
我在这里的目的是识别通过观察event.target
对其中div的,用户点击” myclass
但是,如果我尝试将它做成一个字符串”。
然而indexOf
不会在这里工作,因为它会返回‘str是不是一个函数’
,因为这样的:
console.log(e.target.toString());
我得到[object HTMLDivElement]
。没有我需要的HTML字符串的痕迹。
如何将event.target
的输出转换为我可以操纵的字符串?
p.s请注意,这种情况与this one非常相似,关于event.target.id
:但所提出的解决方案对我无效。
是否要检查元素的文本内容,或者你只是想看看它是否属于一个特定的类?如果你确实需要这些内容,那么innerHTML,innerText等将是通常的嫌疑犯。 – CBroe
您的实际需求是什么?你想获得被点击的物品的html代码,或者你想要用class或id来标识物品?具体问题。 –
正如我上面写的,“这是为了检查是否存在一个子字符串,例如myclass”或“myid”event.target的输出似乎只是一个元素的开始,无论如何...因为我需要知道用户点击哪个div。我对innerHTML不感兴趣,我只是用这个开始找到我寻找的类或id。 – nico