我有以下代码:
var star = $("._container > favorite");
var symbol = $(star.parentNode.parentNode).attr("symbol");
var exchange = $(star.parentNode.parentNode).attr("exchange");
但是,如果我再看看符号和交换,它们就是空白。我知道“明星”是我可以参考的:
$("._container > .favorite").click(function() {
这样做的正确方法是什么?
使用以下代码,第二个警报不会显示:
var star = $("._container > .favorite");
alert("symbol1");
var symbol = star.parent.parent.attr("symbol");
var exchange = star.parent.parent.attr("exchange");
alert("symbol2");
这是相关的html:
<div id="tabs-2" aria-labelledby="ui-id-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom" role="tabpanel" aria-expanded="false" aria-hidden="true" style="display: block;" tabcounter="2" symbol="GOOG" exchange="NASDAQ">
<div class="_container">
<span class="favorite" status="off" style="display: inline;"> ☆</span>
答案 0 :(得分:1)
var $str_par_par = star.parent().parent(),
symbol = $str_par_par.attr("symbol"),
exchange = $str_par_par.attr("exchange");
<小时/> 截至Arun
star.parentNode
应该是未定义的,因为star是一个jQuery对象,而不是具有parentNode属性的dom元素引用
答案 1 :(得分:1)
不要使用parent.parent。使用nearest()查找所需的最近节点。我认为你错了 这是文档http://api.jquery.com/closest/