Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击时选择元素的父元素_Javascript_Jquery - Fatal编程技术网

Javascript 单击时选择元素的父元素

Javascript 单击时选择元素的父元素,javascript,jquery,Javascript,Jquery,总而言之,我正在尝试这样做:当用户单击页面上的特定元素时,页面读取数据值,并将其与可能值列表进行匹配,并根据值将用户重定向到特定URL 我所关注的部分是,当单击某个元素时,能够获取父元素的值。我需要class=“1”的元素值,并且由于页面的方式,用户只能单击class=“3”的元素 我正在使用一个简单的警报测试来查看是否可以访问该值 document.onclick=函数(事件){ var target=event.target | | event.src元素; $tar=目标; 警报($(t

总而言之,我正在尝试这样做:当用户单击页面上的特定元素时,页面读取数据值,并将其与可能值列表进行匹配,并根据值将用户重定向到特定URL

我所关注的部分是,当单击某个元素时,能够获取父元素的值。我需要class=“1”的元素值,并且由于页面的方式,用户只能单击class=“3”的元素

我正在使用一个简单的警报测试来查看是否可以访问该值

document.onclick=函数(事件){
var target=event.target | | event.src元素;
$tar=目标;
警报($(tar.parents().eq(2.attr)(“数据”);
}

这是我的部门
您可以使用来实现这一点

如果你不以数字开始你的类,这会容易得多,因为类选择器不能以未替换的数字开始。因此,如果我们将1、2和3更改为a、b和c(并且如果我们修复了拼写错误),您将:

document.onclick=函数(事件){
var target=event.target | | event.src元素;
$tar=目标;
警报($($tar).closest(.a”).attr(“数据”);
}

这是我的部门

如果您知道您只需要上两步,那么以下几步就可以了:

document.onclick=函数(事件){
var target=event.target | | event.src元素;
$tar=目标;
警报($($tar.parent().parent().attr(“数据”));
}

这是我的部门

请注意,根据W3C规范,类不能以数字开头:在CSS中,标识符(包括选择器中的元素名称、类和ID)只能包含字符[a-zA-Z0-9]和ISO 10646字符U+00A0及以上,加上连字符(-)和下划线(41;);它们不能以数字、两个连字符或连字符后跟数字开头。编辑:如前所述,这仅适用于选择器-虽然它在HTML中完全有效,但在CSS和JavaScript中使用标准选择器引用这些类时,您必须做一些肮脏的工作。@Santi:类可以以数字开头,只是类选择器不能以未替换的数字开头。(ID也是一样。)为了简单起见,最好不要使用以数字开头的类,但这与不允许使用数字不同。@user:从头到尾阅读这些内容是值得的。它只需要一个小时,最多两个小时,就可以为你回答这样的问题,而且几乎可以立即偿还你一两个小时的费用。你有一个打字错误:
$tar=target
$(tar).parents()…
应该是
$($tar).parents()…
@T.J.Crowder您是对的。我现在意识到,用数字启动类/id等的问题不在HTML本身,而是选择器,正如您所提到的。谢谢我将编辑我的评论以反映。