2012-12-12 85 views
2

我嘗試2個變量1相結合,經典的書方式的jQuery的.html()函數殺死一切

a = 1; 
b = "bla"; 
c = a + b; 

但是,當變量之一,擁有HTML()jQuery函數,結果是隻有這個變量,僅此而已。爲什麼是這樣?在這種情況下我應該怎麼做?

所有的JS代碼

$("#target").click(function() { 
$('#myTable tr:last').after('<tr><td>Bla</td><td><div class="remove">REMOVE</div></td></tr>'); 
}); 
$("#myTable").on('click', '.remove', function(event) { 
    $(this).parent().parent().remove(); 
}); 

$("button").click(function() { 
    var input = $("input").val(); 
    var table = $("#myTable").html(); 
    var output = input + "www" + table; 
    $(".result").html(output); 
}); 

相關代碼:

$("button").click(function() { 
    var input = $("input").val(); 
    var table = $("#myTable").html(); 
    var output = input + "www" + table; 
    $(".result").html(output); 
}); 

HTML輸出只打印表的內容,而不是其他的增值經銷商。結合變量確實有效,但是如果有html()。在其中一箇中,只打印了這個var。這是什麼源泉?

http://jsbin.com/ucopun/9/edit

要看到它不工作,在輸入型的東西,然後單擊結果。

+1

RTM - > http://api.jquery.com/html/ – Sparky

回答

2

的問題是,如果沒有開始$("#myTable").html();回報你的表html和結束標籤<table></table>因此,稍後當您將文本連接到流暢的html表代碼時,瀏覽器會將您的文本解釋爲屬於表格,但不知道如何呈現它。

簡單的解決方法就是輸出合適的表,使文本顯示正確,並從表中分離出來,所以要做到這一點,只需更換你的下面一行:

var table = $("#myTable").html(); 

這一個:

var table = '<table>' + $("#myTable").html() + '</table>'; 
4

.html()設置並從DOM節點檢索HTML;不要與.text()混淆,它處理節點內部的文本值。

可能是你正在尋找做這樣的事情:

var input = '<div>' + $("input").val() + 'www</div>'; 
var table = $("#myTable").html(); 
var output = input + '<table>' + table + '</table>; 

坦率地說,我覺得你的HTML太複雜;你爲什麼把表格放在表格內?你可以減少你的代碼,並使它只與div一起工作。

+0

div只是一個切換元素,也可能是一個錨標籤。這個例子有效,但html()中的html爲什麼不顯示? – user1721135

1

您在輸出變量中放置的所有文本都存在,問題在於$(".result").html(output)忽略了非HTML內容。加入此警報證明給自己:

$("button").click(function() { 
    var input = $("input").val(); 
    var table = $("#myTable").html(); 
    var output = input + "www" + table; 
    alert(output); 
    $(".result").html(output); 
}); 
1

看看源(或在警告框中顯示的output值)。

$("button").click(function() { 
    var input = $("input").val(); 
    var table = $("#myTable").html(); 
    var output = input + "www" + table; 
    alert (output); 
    $(".result").html(output); 
}); 

您可以看到來自輸入字段和'www'的值正被添加到結果div的html中;它只是沒有被渲染。

考慮使用id屬性,而不是一個類來定義你的.html(output)目標:

<div id="result">...</div> 

$("#result).html(output);