我不知道如何正确描述我的问题,但我认为我只需要朝着正确的方向努力。我做了一个小提琴,希望能解释我的问题。我有一个带有 onClick 事件处理程序的链接列表。相应的函数应该将列表项的文本传递给一个新函数,该函数将字符串与另一个字符串进行比较。据我了解,第一个列表项(测试)应该提醒“酷”(因为字符串完全匹配),但它不会。
有任何想法吗?
我知道如果我使用e.target.name
而不是,这会起作用$(this).text()
,但我需要传递链接文本而不是属性。
我不知道如何正确描述我的问题,但我认为我只需要朝着正确的方向努力。我做了一个小提琴,希望能解释我的问题。我有一个带有 onClick 事件处理程序的链接列表。相应的函数应该将列表项的文本传递给一个新函数,该函数将字符串与另一个字符串进行比较。据我了解,第一个列表项(测试)应该提醒“酷”(因为字符串完全匹配),但它不会。
有任何想法吗?
我知道如果我使用e.target.name
而不是,这会起作用$(this).text()
,但我需要传递链接文本而不是属性。
Filter down to the anchor tag.
$('a', this).text();
Otherwise you may get empty text nodes from the li.
你的 li 没有文本..它们包含有文本的 <a> .. 尝试:
$(this).find('a').text()
我注意到您将click
事件绑定到li
列表中的元素,而不是a
元素。当您将其更改为绑定到 时a
,它会按预期工作:
http://jsfiddle.net/gromer/WdVbk/
如果您真的想要元素click
上的事件li
,请更改获取文本以发送到函数的方式:
clickFunc($(this).find('a').text());
http://jsfiddle.net/gromer/FVSuz/
编辑:是的,我的 Fiddles 中有一些console.log
语句,如果你在 IE 中,它可能会中断。