2013-05-14 36 views
4

我有span元素,我希望切换另一个元素的“价格”和“净”字onclick之间的内容。如何使用jquery切换2个替代字符串之间的innerHTML

本质上,它需要测试现有的单元格内容,以查看当前存在的单元格,然后将其与另一个单元交换。

事情是这样的:

<input 
    type = "checkbox" 
    name = "element1" 
    onclick = "$(#element2).toggleHTML('Price', 'Net')"> 

<span id="element2">Price</span> 

我提出了上述用于证明我是多么希望它可能工作toggleHTML方法。

+2

http://mattgemmell.com/2008/12/08/what-have-you-尝试/ – 2013-05-14 12:47:47

+0

请使用搜索功能找到[类似的问题](http://stackoverflow.com/questions/5584010/jquery-toggle-html-text)并尝试使用那些第一 – naththedeveloper 2013-05-14 12:49:37

回答

8

您可以使用htmltext方法的回调函数。

$('input[name="element1"]').click(function() { 
    $('#element2').text(function(_, text) { 
     return text === 'Price' ? 'Net' : 'Price'; 
    }); 
}); 

http://jsfiddle.net/BLPQJ/

您也可以定义一个简单的方法:

$.fn.toggleHTML = function(a, b) { 
    return this.html(function(_, html) { 
     return $.trim(html) === a ? b : a; 
    }); 
} 

用法:

$('#element2').toggleHTML('Price', 'Net'); 

http://jsfiddle.net/AyFvm/

+2

谢谢。这是我使用的代码。虽然这里有几个类似的答案,但是通过提供多种解决方案和jsfiddle,您可以比大多数人付出更多的努力。谢谢并感谢其他人。 – 2013-05-14 13:01:16

+0

@PeterSnow您非常欢迎。 – undefined 2013-05-14 20:09:01

+0

伟大的小实用功能,不错的一个。什么是( - ,html)的功能呢? – pushplaybang 2013-10-15 12:32:03

0

这是代码: HTML:

<input type = "checkbox" name = "element1" id="element1"> 

的Javascript:

$(document).ready(function() 
{ 
    $("#element1").click(function() 
    { 
     if($("#element2").html() == "Price") 
      $("#element2").html("Net"); 
     else 
      $("#element2").html("Price"); 
    }); 
}); 

1

你可以做这样的事情:

var html = $('#element2').html(); 
html = html.indexOf('Price') > -1 ? "Net" : "Price"; 
$('#element2').html(html) 
1

试试这个

HTML

<input 
type = "checkbox" 
name = "element1" 
id="input1"> 
使用内嵌的JavaScript

JQUERY

$('#input1').click(function(){ 
    $('#element2').text(function(){ 
     return $('#element2').text()=="Price" ?"Net":"Price" ; 
    }); 
}); 

避免...

fiddle here

+0

谢谢。我想知道为什么最好避免使用内联JavaScript。我不挑剔,只是想增加我的理解。谢谢。 – 2013-05-14 13:02:30

+1

其实际上没有必要..它取决于..avoiding使代码更清晰,更容易阅读,如果你有很多的代码在那里..一路上你去... http://程序员。stackexchange.com/questions/86589/why-should-i-avoid-inline-scripting ... – bipen 2013-05-14 13:06:31

+0

感谢您的链接。非常丰富的信息(以及网站的其他部分)。 – 2013-05-14 13:25:10