改变孩子的文字

时间:2013-10-29 15:46:45

标签: javascript

我试图添加一个favourit系统。

我有一个功能,提醒我想要添加的正确ID。 我用:

 <script type="text/javascript">
 function addfavo(state_name)
 {
    alert(state_name);
 } 
 </script>

在我的html中,我有一个循环(使用php),它显示所有带有添加到favourit链接的图像。

<div style="margin-top:40px;">
    <a onclick="addfavo('<?php echo $imgid ?>')"><b>Add to favourits</b></a>
</div>

所以会发生什么是我有很多链接到相同的函数与不同的参数,但我只想要我点击的链接更改文本(添加到favourits的东西) 有人可以帮助我朝正确的方向发展吗? 我试过添加:

 $(this).innerHTML("test");

但它没有用。

1 个答案:

答案 0 :(得分:1)

您可能想要使用html方法:

$(this).html('test');

虽然html是jQuery方法,但innerHTML是DOM元素的属性。如果您使用的是纯JavaScript,则可能使用:

this.innerHTML = 'test';

但是,当您在HTML标记上使用onclick属性时,this将不会指向您的函数范围内的当前DOM元素。在您的情况下,我会为您的元素添加一个类,例如add_favorite,并将您的文本添加到另一个属性:

<div style="margin-top:40px;">
    <a href="#" class="add-favorite" data-text="<?php echo $imgid ?>"><b>Add to favourits</b></a>
</div>

然后将jQuery事件应用于它:

<script type="text/javascript">
    $(function() {
        $('.add-favorite').click(function(e) {
            var text = $(this).data('text'); // store the text in a variable
            $(this).html(text); // replace your element's html with your text
            e.preventDefault();
        });
    });
</script>

小提琴:http://jsfiddle.net/MH6vY/