首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery输出id显示为[对象对象]

jquery输出id显示为[对象对象]
EN

Stack Overflow用户
提问于 2011-05-06 16:11:52
回答 6查看 3.1K关注 0票数 0
代码语言:javascript
复制
var str = prompt("What is your name?");
var str1=$(str).html('<b>'+str+'</b>');
alert(str1);

通过上面的代码,我得到了[object object]作为输出。请帮帮忙

EN

回答 6

Stack Overflow用户

发布于 2011-05-06 16:14:20

代码语言:javascript
复制
alert(str1.html()); 

就是你要找的。

jquery中的每个函数都返回一个jquery对象,因此

代码语言:javascript
复制
.html('<b>'+str+'</b>') 

返回一个对象,而不是元素内的文本。

票数 2
EN

Stack Overflow用户

发布于 2011-05-06 16:32:22

首先,让我们在jQuery接口中查找html()

  • http://api.jquery.com/html/

它有两个变体。如果传递参数,方法签名是这样的:

代码语言:javascript
复制
.html( htmlString ) Returns: jQuery 

所以它返回一个jQuery对象。并且对象没有任何有趣的东西可以在警告中显示。现在,如何处理表示DOM节点的jQuery对象呢?嗯,你可以用read back their HTML code

代码语言:javascript
复制
alert(myNode.html());

..。或者你也可以使用read their plain text value

代码语言:javascript
复制
alert(myNode.text());

现在,让我们来看看你的代码:

代码语言:javascript
复制
var str = prompt("What is your name?");

由于prompt()返回字符串(如果用户键入内容并单击OK)或null (如果用户单击Cancel),因此str将是任意字符串或null

代码语言:javascript
复制
var str1=$(str)

您将使用任意字符串调用jQuery,因此您将获得一个任意jQuery对象。如果用户输入john,您将运行$("john")。这意味着:匹配任何包含<john></john>标记的元素。如果用户输入<h1>Hi</h1>,您将创建一个第一级标题。以此类推。

代码语言:javascript
复制
               .html('<b>'+str+'</b>');

现在,您可以选择第一步中得到的内容,并告诉jQuery将其HTML更改为一些任意内容:.html("<b>john</b>").html("<b><h1>Hi</h1></b>")……

代码语言:javascript
复制
alert(str1);

..。到目前为止,我们没有得到任何有趣的东西;-)

票数 2
EN

Stack Overflow用户

发布于 2011-05-06 16:15:25

这是正确的,因为您正在设置超文本标记语言,然后函数将返回jQuery对象

代码语言:javascript
复制
var str1=$(str).html('<b>'+str+'</b>').html();

现在str1将拥有超文本标记语言字符串。

编辑:但正如DarthJDG指出的那样,正确地将一个字符串(prompt()的返回值)包装到一个jQuery对象中并设置一些超文本标记语言并没有什么实际意义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5908592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档