如何在鼠标点击时显示隐藏的i标签

时间:2014-06-03 04:20:40

标签: javascript jquery

我有一个li如下

<li class="active">
        <a href="#" onclick="editCategory(this)" class="active" value="14-client" id=""> qqqq
        <i class="glyphicon glyphicon-trash pull-right" style="display:none"></i></a>
    </li>

它有一个隐藏在<i class="glyphicon glyphicon-trash pull-right" style="display:none"></i>

开头的i标记

我只想在锚标记上单击鼠标时显示此标记,因此我写了onclick="editCategory(this)"

这是我的功能

function editCategory(id)
    {
        alert('category');
        $(this).children().show();
    }

所以当我点击锚标签然后警报工作alert('category')但是i标签没有显示。

任何人都可以指出我做错了吗

5 个答案:

答案 0 :(得分:1)

使用:


function editCategory(id)
{
    alert('category');
    $(id).find('i').show("100");
}

DEMO


如果您使用$(document).ready(function(){...});javascript中的JQuery也会丢失DOM,请确保在$(document).ready(function(){ // Here $(this) will be `document` object $(".active").click(function(){ //alert('category'); $(this).find('i').show("100"); // Now this refers to object from which event is bubbled or generated. }); }); 准备就绪后立即就绪。
所以我把你的代码更改为:

html

,您的<a href="#" class="active" value="14-client" id="qqq"> qqqq <i class="glyphicon glyphicon-trash pull-right" style="display:none">aaa</i></a> 将是:

JQuery

DEMO

我的意思是这是inline-javascript男人的时代。你还在使用function editCategory(id) { alert('category'); console.log($(this)); //or try alert instead of console.log, it Will Log/alert Window Object console.log($(id)); // This will log <a> Object. $(id).find('i').show("100"); } 。只是摆脱它。

<小时/> 也在此代码中:

id

您将this作为对象$(this)(锚点obj)传递给函数,而window(您正在访问的对象)现在正在引用(在您的情况下){ {1}}对象。

DEMO

希望它有所帮助。

答案 1 :(得分:1)

尝试使用like this代替(将其置于<head><script>...</script></head>之间):

$(function(){
    $('a.active').on('click', function(e){
        e.preventDefault();
        $(this).find('i').show();
    });
});

使用此HTML

<li class="active">
    <a href="#" class="active" value="14-client" id=""> qqqq
        <i class="glyphicon glyphicon-trash pull-right" style="display:none"></i>
    </a>
</li>

答案 2 :(得分:0)

这是参数问题而不是其他问题:$(id)而不是$(this)

function editCategory(id)
    {
        alert('category');
        $(id).children().show();
    }

$(id)而非$(this)

因为$(this).children().show();表示this的功能,而不是this的{​​{1}}标记。

DEMO: http://jsfiddle.net/abdennour/bUtA3/

答案 3 :(得分:0)

<强> Demo   试试这个

$("li.active a.active").click(function() {
        $(this).find("i").show();

});

答案 4 :(得分:-1)

使用它。 <i>是您<a>标记的子级。的 Demo Fiddle

您已将this作为参数传递给editCategory(id)引用的id功能。

function editCategory(id)
{
    alert('category');
    $(id).children('i').show();
}

或者

function editCategory(id)
{
    alert('category');
    $(id).find('i').show();
}

其他替代方案,

$('i',id).show();