10

这是html代码片段

<li style="opacity: 1;">
    <a id="LinkDisplay" class="optionsDropDown" style="color:#FF0000;display:none" href="javascript:showThisLink('LinkId');">
</li>

这是在加载时调用的 jquery 函数

$(function () {
    $.ajax({
        url: url,
        dataType: 'json',
        data: '',
        type: 'POST',
        success: function (data) {
            alert("Test");
            document.getElementById("LinkDisplay").style.diplay="block"; // line 1
            // after this line execution i should see the link as i have
            // changed the link display from none to block but it is still invisible
        });
    });
}

第 1 行执行后,我不确定为什么我的链接不可见?

4

6 回答 6

20

您没有更改代码中的显示属性

 document.getElementById("LinkDisplay").style.display="block"

在第 1 行之后将此代码插入到您的函数中

于 2012-08-29T08:56:52.830 回答
8

由于您使用的是 jQuery,因此您可以编写

$("#elemId").show()
于 2012-08-29T09:00:12.550 回答
3

问题是显示在该行中的拼写:

document.getElementById("LinkDisplay").style.display="block";
于 2014-07-02T11:41:26.537 回答
2

父级li设置为opacity: 0,这使其透明。

您需要将其不透明度更新为 1 以使其可见。

替换这个:

document.getElementById("LinkDisplay").style.color = "#FF0000";

有了这个:

$('#LinkDisplay').show().parent('li').css({opacity: 1});

第二行是 jQuery(因为您已经在使用 jQuery,并且更容易找到父节点) - 它正在查找 LinkDisplay 链接并将其更改display: nonedisplay: block,然后更改 parentli的不透明度以使其可见。

工作的jsFiddle

于 2012-08-29T08:57:19.797 回答
1

看起来您已经在使用 jquery,因此您可以通过使用 $ 选择器语法来简化一点:

$('#LinkDisplay').css('display', 'block')

您还可以使用jQuery show方法来缩短第一部分,如下所示:

$('#LinkDisplay').show()

#jQuery 选择器可以使用for id 和.for classes按 ID 或类查找元素。jQuery css方法允许您使用多种方法获取和设置属性。并且jQuery 的父方法可以让你快速从 DOM 中的一个元素向上遍历来查找其他标签。

于 2012-08-29T09:00:07.670 回答
1

使用 jQuery:

$('#LinkDisplay').css('display','block');
$('#LinkDisplay').parent().css('opacity','1');
于 2012-08-29T09:00:09.287 回答