5

我已经设置了一个测试,所以我可以开始在 cakePHP 环境中使用 jQuery,但我什至在开始之前就遇到了问题。

我也有 twitter 引导程序,但是当我遇到这个问题时,我关闭了一切以确保不是那样。不是。

我正在 Chrome 和 Waterfox 中对此进行测试。

当我尝试时,$('#test').html('Hello');我什么也没得到。因此,我尝试使用以下方法发出警报:

$(document).ready(function() {

    $('#test').click(function() {
        alert($('#test').text);
    });
});

<span id="test">test span</span>

这给了我结果:

function (a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)}

有人可以告诉我这到底是什么,为什么我没有得到“测试跨度”。谢谢 :)

4

8 回答 8

10

'text' 是一个函数,您要输出的代码

像任何函数一样调用它

alert($('#test').text());
于 2012-06-21T13:43:37.917 回答
5

jQuery.text()是一个函数,而不是一个属性。以下是你如何使用它:

var a = $('#test').text(); // getter
$('#test').text(a);        // setter

注意:jQuery.html()如果您打算注入 HTML 片段,请考虑使用。

于 2012-06-21T13:45:33.480 回答
1

text 是一个函数,应该有括号

.text()

于 2012-06-21T13:43:56.413 回答
1

text()是一个 jQuery 方法;这意味着它需要text()

alert($('#test').text());
于 2012-06-21T13:44:01.723 回答
0

.text()只会给出文本。前任,

alert($('#test').text());
于 2012-06-21T13:44:12.020 回答
0

要将一些文本分配给块,您需要使用:

$('#test').text("Hello");

请记住,这不适用于表单输入或脚本。它仅适用于实际的文本元素。要进行输入,请使用:

$('#test').val("Hello");
于 2012-06-21T13:46:45.630 回答
0

您需要添加括号来调用'text' 函数,例如'text()'。否则,根据标准 JavaScript 行为,函数本身的代码内容将被输出。

如果您想快速查看函数是如何组合在一起的,这将非常方便。

于 2012-06-21T13:46:55.467 回答
0

你得到这个是因为如果alert函数的参数是,an object那么它会使用.toString()方法(Doc)转换为字符串object,并且在这种情况下,你将传递一个function object警报函数。

引用自 MDN

window.alert(消息);

message 是要在警报对话框中显示的文本字符串,或者是转换为字符串并显示的对象。

您可以通过将以下代码粘贴到终端中来检查

alert($.fn.text.toString())

您将获得与现在相同的输出。

因为当.toString()被调用到一个函数对象时,它的定义被返回。您需要通过附加()函数名称来像其他任何函数一样调用该函数。

所以就像所有其他人已经说过你必须这样称呼它alert($('#test').text());

于 2012-06-21T14:00:30.947 回答