使用jQuery更改属性

时间:2011-08-07 12:45:14

标签: jquery

我希望有人可以提供帮助。我有这样一个链接:

<a id='testOne' onclick="doTest('one'); return false;" title="Test One">One</a>

我需要的是让jQuery执行以下操作:

  • 删除标题并停用链接操作
  • 添加标题“Test One”并启用链接
  • 的操作

是否有任何jQuery专家可以告诉我如何做到这一点。现在我的jQuery知识只是选择器而且几乎没有。我希望我能得到一个例子。

由于

5 个答案:

答案 0 :(得分:1)

试试这个

//To remove the title and default action.
$("#testOne").attr("title", "").click(function(e){
  e.preventDefault();
}).attr("onclick", null);

//To reset the title and action
$("#testOne").attr("title", "Test One").click(function(e){
  doTest('one');
});

答案 1 :(得分:0)

易:

$('#testOne').attr('title', '').attr('title', 'Test One').attr('href', 'someLink');

attr()获取或设置属性,您可以将命令链接在一起。

如果通过'启用链接操作'表示模拟点击,请尝试以下操作:

$('#testOne').trigger('click');

您也可以跳过onclick语法并执行:

$('#testOne').click(function (ev) {doTest('one');});

答案 2 :(得分:0)

您可以使用.attr()编辑属性,例如:

$('#testOne').attr('title', '');
$('#testOne').attr('onclick', '');

$('#testOne').attr('title', 'Your old title');
$('#testOne').attr('onclick', 'Your old onclick');

答案 3 :(得分:0)

如果你想保留元素的内联代码(即onclick=...部分),那么你将不得不使用这样的代码:

var actionsMapping = {};

function Disable() {
    var oLink = $("#testOne").get(0);
    if (oLink.onclick != null)
        actionsMapping[oLink] = oLink.onclick;
    oLink.onclick = null;
}

function Enable() {
    var oLink = $("#testOne").get(0);
    if (actionsMapping[oLink] != null)
        oLink.onclick = actionsMapping[oLink];
}

属性集合只能存储字符串文字,而您需要存储实际的事件处理程序。

Live test case

答案 4 :(得分:0)

如果可能的话,最初应该使用jQuery来应用你的处理程序。使用某种“全局”状态禁用比重新应用更容易。

<a id='testOne' title="Test One">One</a>

<script type="text/javascript">
    $(function() {
       var testOneClicked = false;
       $('#testOne').click( function() {
           if (testOneClicked) {
              $(this).attr('title','Test One');
           }
           else {
              $(this).attr('title','');
              doTest('one');
           }
           testOneClicked = !testOneClicked;
           return false;
       });
    });
</script>

通过一些实验,您可以使用数组和index方法对此进行扩展,以考虑任意数量的链接,使它们的工作方式类似。您需要做的就是跟踪doTest函数的参数和一组数组中的标题,这些数组对应于链接集中链接的相对位置,并根据当时链接的索引提取这些标题它被点击了。