2011-05-06 197 views
0
var str = prompt("What is your name?"); 
var str1=$(str).html('<b>'+str+'</b>'); 
alert(str1); 

通過上面的代碼,我得到了[object object]作爲輸出。請幫忙jquery輸出id顯示爲[object object]

+2

你究竟想要達到什麼目的? – DarthJDG 2011-05-06 08:15:02

+0

jQuery適用於HTML/DOM,而不是任意字符串... – 2011-05-06 09:31:52

回答

2
alert(str1.html()); 

就是你所追求的。

在jquery的每個函數返回一個jquery對象,以便

.html('<b>'+str+'</b>') 

返回一個對象,而不是在元件內部的文本。

+0

alert()。text();什麼應該警報返回?你的意思是alert(str1.text()); – DanielB 2011-05-06 08:17:30

+0

我想你的意思是'alert(str1.text());' – 2011-05-06 08:18:15

+0

對不起。 Updated – 2011-05-06 08:18:22

1

這是正確的,因爲你要設置的HTML,然後該函數返回jQuery對象

var str1=$(str).html('<b>'+str+'</b>').html(); 

現在STR1將有HTML字符串。

編輯: 但是,DarthJDG指出正確地將一個字符串(返回值爲prompt())包裝到一個jQuery對象中,並且將一些HTML元素打包成一個jQuery對象並沒有什麼意思。

+1

嘗試在提示符處放入有效的選擇器,更有趣得多。 :) – DarthJDG 2011-05-06 08:19:14

+0

你是如此的正確;-)。從來沒有看過這個,只專注於警報問題^^ – DanielB 2011-05-06 08:22:00

+1

'$(obj).html(val).html()== val;'。那麼,爲什麼不只是'str1 ='+ str +; '(str).html(str1);' – 2011-05-06 08:22:42

0

陳述$(str).html('<b>'+str+'</b>');正在設置html$(str),然後從該呼叫返回$(str)(用於鏈接目的)。

因爲我不完全確定你想要達到的目標,所以我拒絕提出一個解決方案。你能否在你的問題上更明確一些?

+0

我需要將提示文本轉換爲粗體並顯示到textarea框中 – bhuvana 2011-05-09 06:59:12

0

是的,這正是你應該期望的。通過將參數傳遞給.html(),即可調用返回jQuery(即對象)的方法。

相反,如果你想要回(HTML)元素,你應該alert(str1.html()),從而invoking the method它返回一個string

0

你應該這樣做:

alert($(str).html()); 

你的代碼是行不通的,因爲$(str).html('<b>'+str+'</b>');返回一個jQuery對象,而不是一個字符串。

乾杯

2

首先,讓我們來看看了html() jQuery的API中:

它有兩個變化。如果你傳遞一個參數,方法簽名是這樣的:

.html(htmlString) Returns: jQuery 

所以它返回一個jQuery對象。對象沒有任何有趣的內容顯示在警報內。現在,你可以用代表DOM節點的jQuery對象做什麼?那麼,你可以read back their HTML code

alert(myNode.html()); 

...或者你可以read their plain text value

alert(myNode.text()); 

現在,讓我們看看你的代碼:

var str = prompt("What is your name?"); 

由於prompt()返回一個字符串(如果用戶鍵入的東西,打OK)或null(如果用戶擊中取消),str將是任意字符串或null

var str1=$(str) 

你正在用任意字符串調用jQuery,所以你會得到一個任意的jQuery對象。如果用戶輸入john,您將運行$("john")。這意味着:匹配包含<john></john>標籤的任何元素。如果用戶輸入<h1>Hi</h1>,您將創建第一級標題。等等...

   .html('<b>'+str+'</b>'); 

現在你選擇任何你在第一步中獲得,並告訴jQuery來其HTML更改爲某個任意內容:.html("<b>john</b>").html("<b><h1>Hi</h1></b>") ...

alert(str1); 

.. 。到目前爲止我們沒有什麼有趣的東西;-)

+0

Alvaro,感謝這麼長的響應!我正在尋找一些能夠將jQuery對象轉換爲帶有超鏈接的html表格,這些超鏈接深入瞭解jQuery對象中的方法和對象。 – 2011-06-11 16:25:41

相關問題