我有一個HTML表單,當用戶填充輸入字段時,我將從一系列輸入字段將值複製到某些跨度/標題。我可以使用下面的代碼得到這個工作:Jquery將HTML元素傳遞給函數
$('#source').keyup(function(){
if($("#source").val().length == 0){
$("#destinationTitle").text('Sample Title');
}else{
$("#destinationTitle").text($("#source").val());
}
});
在上述情況下的HTML是一樣的東西:
樣品名稱基本上,用戶填寫源框中,文本的內容將更改爲源輸入的值。如果沒有輸入任何內容,或者用戶刪除了輸入到框中的值,則會改爲放置一些默認文本。非常簡單。然而,因爲我需要爲許多不同的領域做這項工作,所以把它變成一個通用函數,然後將該函數綁定到每個onkeyup()事件上是有意義的。但我在這方面遇到了一些麻煩。我的實現:
function doStuff(source,target,defaultValue) {
if($(source).val().length == 0){
$(target).text(defaultValue);
}else{
$(target).text($(source).val());
}
}
被稱爲如下:
$('#source').keyup(function() {
doStuff(this, '"#destinationTitle"', 'SampleTitle');
});
我想不通的是如何傳遞的第二個參數,目標html元素到函數的名稱。我沒有問題通過「this」傳遞給我綁定的元素,但無法找出目標元素的語法。
任何幫助將不勝感激 - 非常感謝!
嗨尼克, 多數民衆贊成在我的想法,我試過了:) - 但我怎麼然後參考它在我的功能?當我執行以下操作時,它似乎不起作用: 函數doStuff(source,target,defaultValue){ 如果($(source).val()。length == 0){的.text(默認值); (「'」+ target +「'」).text($(source).val());其他{ } } } – christian 2010-03-15 20:44:58
爲什麼其他人得到特殊待遇?通常使用它'else {$(target).text(..)' – Anurag 2010-03-15 20:46:43
@christian - 不確定else的語法是什麼,只是用作Anurag的語法,沒有額外的附加字符串。 – 2010-03-15 20:48:23