jquery输出id显示为[object object]

问题描述:

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

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

这是正确的,因为你要设置的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

陈述$(str).html('<b>'+str+'</b>');正在设置html$(str),然后从该呼叫返回$(str)(用于链接目的)。

因为我不完全确定你想要达到的目标,所以我拒绝提出一个解决方案。你能否在你的问题上更明确一些?

+0

我需要将提示文本转换为粗体并显示到textarea框中 – bhuvana 2011-05-09 06:59:12

是的,这正是你应该期望的。通过将参数传递给.html(),即可调用返回jQuery(即对象)的方法。

相反,如果你想要回(HTML)元素,你应该alert(str1.html()),从而invoking the method它返回一个string

你应该这样做:

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

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

干杯

首先,让我们来看看了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