Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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 使用$(this)获取单击的元素_Javascript_Jquery - Fatal编程技术网

Javascript 使用$(this)获取单击的元素

Javascript 使用$(this)获取单击的元素,javascript,jquery,Javascript,Jquery,嘿,我有一个愚蠢的问题,我希望你能帮我解决它。我有一些“a”元素,我只想在单击时添加一个活动类 我试过这个: <a href="javascript:mifunction()"></a> js: function mifunction(){ $(this).addClass('active'); } js: 函数mifunction(){ $(this.addClass('active'); } 但它不起作用,所以我尝试了这个: <a></a&

嘿,我有一个愚蠢的问题,我希望你能帮我解决它。我有一些“a”元素,我只想在单击时添加一个活动类

我试过这个:

<a href="javascript:mifunction()"></a>

js:
function mifunction(){
 $(this).addClass('active');
}

js:
函数mifunction(){
$(this.addClass('active');
}
但它不起作用,所以我尝试了这个:

<a></a>

js:
$('a').click(function() {
  $(this).addClass('active');               
});

js:
函数mifunction(){
$('a')。单击(函数(){
$(this.addClass('active');
});
}
你知道怎么解决这个问题吗


多谢各位

试着像下面这样做

<a class="link" href="javascript:void(0)"></a>

$(function () {
   $('.link').click (function () {
      $(this).addClass('active');
   });
});

$(函数(){
$('.link')。单击(函数(){
$(this.addClass('active');
});
});

试着像下面这样做

<a class="link" href="javascript:void(0)"></a>

$(function () {
   $('.link').click (function () {
      $(this).addClass('active');
   });
});

$(函数(){
$('.link')。单击(函数(){
$(this.addClass('active');
});
});

您正在混合和匹配使用DOM和JavaScript的新旧方法

应该行得通

只需将其放在
$(document.ready(function(){})中即可

所以。。从字面上看应该是这样的:

<script type="text/javascript">
    $(document).ready(function() {
        $('a').click(function() { 
            $(this).addClass('active');
        });
    });
</script>
<a>Click me</a>

$(文档).ready(函数(){
$('a')。单击(函数(){
$(this.addClass('active');
});
});
点击我


还有,如果你只是想改变一下。。您可以通过CSS执行此操作
对于活动:
a:Active{color:orange;}


对于访问:
a:visted{color:green;}

您正在混合和匹配使用DOM和JavaScript的新旧方法

应该行得通

只需将其放在
$(document.ready(function(){})中即可

所以。。从字面上看应该是这样的:

<script type="text/javascript">
    $(document).ready(function() {
        $('a').click(function() { 
            $(this).addClass('active');
        });
    });
</script>
<a>Click me</a>

$(文档).ready(函数(){
$('a')。单击(函数(){
$(this.addClass('active');
});
});
点击我


还有,如果你只是想改变一下。。您可以通过CSS执行此操作
对于活动:
a:Active{color:orange;}


对于已访问:
a:visted{color:green;}

它在这里处理您的第二个示例:

您可能需要将jQuery代码包装到:

$(function() {

  $('a').click(function() {
     $('a.active').removeClass('active'); // you may also want to remove previous
     $(this).addClass('active');               
  });

});
还要确保在HTML中包含jQuery库路径:

<script type="text/javascript" src="/path/jQuery.min.js"></script>

它在这里与您的第二个示例一起工作:

您可能需要将jQuery代码包装到:

$(function() {

  $('a').click(function() {
     $('a.active').removeClass('active'); // you may also want to remove previous
     $(this).addClass('active');               
  });

});
还要确保在HTML中包含jQuery库路径:

<script type="text/javascript" src="/path/jQuery.min.js"></script>

您的问题一定存在于其他地方,因为这样做很好:

$('a').click(function () {
   $(this).addClass('active'); 
});​
如果要动态创建锚定,则应使用
.on()

$('#container').on('click', 'a', function () {
    $(this).addClass('active'); 
});
带有
.on()
的示例:


.on()
的文档:

您的问题必须存在于其他地方,因为这样可以正常工作:

$('a').click(function () {
   $(this).addClass('active'); 
});​
如果要动态创建锚定,则应使用
.on()

$('#container').on('click', 'a', function () {
    $(this).addClass('active'); 
});
带有
.on()
的示例:



.on()

您的第二个代码示例应该可以做到这一点。也许你的程序中有什么地方出错了?肯定有什么地方出错了,太奇怪了,你认为可能是什么?你的第二个代码示例应该会这样做。也许你的程序出了什么问题?肯定是出了什么问题,太奇怪了,你认为它可能是什么?我已经做了,但它不起作用,我不明白可能是什么:(我已经做了,但它不起作用,我不明白可能是什么:(它不起作用,它说在void()中有一个语法错误) part@lilymz我的坏..它应该是
:void(0)
它不起作用,它说void()中有语法错误part@lilymz我的坏..它应该是
:void(0)
不,我做了所有这些事情,但它不起作用。我正在创建那些“a”元素,你认为这是问题吗?是的。这可能是个问题。试试:
$('a')。在('click',function(){/**你的代码**/})上
yay!它成功了,谢谢!你能解释一下为什么会发生这种情况吗?请你把它作为一个答案贴出来好吗?以防万一有人有同样的问题。通常jQuery是在现有的HTML上实现的。你需要特别告诉我,它也将在未来的HTML上实现。用你的新要求编辑我的答案。不,我做了所有这些我正在以友好方式创建那些“a”元素,你认为这是个问题吗?是的。这可能是个问题。请尝试:
$('a')。在('click',function(){/**你的代码**/})上
yay!它成功了,谢谢!你能解释一下为什么会发生这种情况吗?你能把它作为一个答案发布吗?以防万一有人有同样的问题。通常jQuery是在现有的HTML上实现的。你需要特别告诉我,它也将在未来的HTML上实现。用你的新要求编辑我的答案。