好的,我想在JavaScript中创建一个OnClick
函数,这样当用户点击它时,它就会改变这个词。是否有replaceword()
函数或其他东西可以让我这样做?我知道这不是真正的代码,但例如:
<p>Quickly <span onclick="replaceword('Surf');">Search</span> The Web!</p>
如果有,那么有人可以告诉我如何反转代码吗?因此,当他们第二次点击它时,它会变回&#34;搜索&#34;?
答案 0 :(得分:2)
如果你想在多个单词之间跳转,你需要将它们存储在某个地方。你可以在句子中有两个单词,并切换一个或另一个的可见性(它不能很好地缩放),或者你甚至可以将它们存储为放置在元素本身上的属性的值。
<p>Hello, <span data-values="World,People,Stack Overflow">World</span>.</p>
我已将所有可能的值放在data-values
属性中。每个不同的值通过逗号与其他值分隔。我们将使用它来创建下一个值数组:
// Leverage event-delegation via bubbling
document.addEventListener( "click", function toggleWords ( event ) {
// A few variables to help us track important values/references
var target = event.target, values = [], placed;
// If the clicked element has multiple values
if ( target.hasAttribute( "data-values" ) ) {
// Split those values out into an array
values = target.getAttribute( "data-values" ).split( "," );
// Find the location of its current value in the array
// IE9+ (Older versions supported by polyfill: http://goo.gl/uZslmo)
placed = values.indexOf( target.textContent );
// Set its text to be the next value in the array
target.textContent = values[ ++placed % values.length ];
}
});
结果:
以上内容会听取document
的点击次数。这是一个很好的选择有很多原因:
有一些警告;您可能遇到阻止点击向上传播到特定父元素的情况。在这种情况下,您可能希望将eventListener添加到您的目标区域附近,因此防止冒泡的可能性较小。
此代码还有其他好处:
您可以在线查看演示:http://jsfiddle.net/7N5K5/2/
答案 1 :(得分:0)
<p id="abc">Hello</p>
<input type="submit" name="Change" onclick="change()">
function change(){
var ab=document.getElementById('abc').value;
ab.innerHTML="Hi, Bye";
}
我认为这应该对你有所帮助,你应该去w3schools.com这样的网站,它的基本内容会回答你的疑问
答案 2 :(得分:0)
不,没有任何原生功能,但您可以自己创建。
function replaceword(that, word, oword) {
that.textContent = that.textContent == oword ? word : oword;
}
您可以这样称呼它:
<p>Quickly<span onclick="replaceword(this,'Surf','Search');">Search</span>The Web!</p>
答案 3 :(得分:0)
如果你想使用jQuery
,你可以试试这样的东西<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<body>
<p>Hello <a id='name'>John<a></p>
<input id="clickMe" type="button" value="replace" onclick="onClick();" />
<script>
function onClick() {
$('#name').text('world');
}
</script>