2013-05-14 40 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