Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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_Html_Css - Fatal编程技术网

Javascript 如何在已访问的父容器上应用样式?

Javascript 如何在已访问的父容器上应用样式?,javascript,html,css,Javascript,Html,Css,当链接被访问时,我需要改变我的div(链接的父容器)的样式。我可以使用纯CSS吗?或者我需要使用JS吗?使用纯CSS无法做到这一点,即使在最新的CSS3规范中也不行。你可以用JS来做。用简单的JS做这件事很不愉快。如果使用jQuery,则可以执行以下操作: $('a:visited').parent('div').css('color: #fff;'); 不,在CSS中不能这样做反向引用。您需要使用JavaScript选择它们 或者,HTML5允许您在块元素周围放置元素,这样您就可以将其翻过来

当链接被访问时,我需要改变我的div(链接的父容器)的样式。我可以使用纯CSS吗?或者我需要使用JS吗?

使用纯CSS无法做到这一点,即使在最新的CSS3规范中也不行。你可以用JS来做。用简单的JS做这件事很不愉快。如果使用jQuery,则可以执行以下操作:

$('a:visited').parent('div').css('color: #fff;');

不,在CSS中不能这样做反向引用。您需要使用JavaScript选择它们

或者,HTML5允许您在块元素周围放置元素,这样您就可以将其翻过来:

a:visited .parent_container { background: pink; }

仅使用CSS是不可能的。 您必须实现您的
:逻辑


然后使用JS,当用户点击一个链接时,将一个类(即
访问的
)添加到它的父div中。

你说的“块元素周围的a元素”是什么意思?然后a元素将成为块元素的父元素,显然这家伙想要的是它们的父元素,而不是它们的内容(这很容易)@Veseliq我建议更改HTML标记:将链接放在整个块的周围,这样您就可以作为链接的子级访问“.parent_container”。当然,这取决于具体情况,但它不需要JS。这是行不通的<代码>:jQuery(或者更具体地说,Sizzle)没有实现访问的
,您可能也无法用JavaScript实现这一点。浏览器不允许您知道用户以前可能访问过哪些链接,您必须跟踪它们并将这些信息存储在cookie或
localStorage
,这并不完全是
:visted
,您的意思是jquery语句:
$('a:visted')。parent('div')。css('color:#fff;')行不通?当然不行。Sizzle(jQuery使用的选择器引擎)仅近似于CSS选择器。它不会也不能模拟CSS拥有的大多数伪元素和类,比如
:第一个字母
::selection
:hover
。看看选择器列表:我可能会补充一点,如果浏览器允许这些信息泄露出去,这将带来安全威胁:就像我说的,你可以跟踪用户在cookie中使用网站时访问的链接,并使用JavaScript设置不同的样式