1

我正在尝试将文本添加到 div,然后检查是否使用 FF 控制台添加了文本。我在控制台中输入的代码是:

jQuery('<div id="method" style="display:none">').append("jonesy" + ',');
jQuery('<div id="method">').text()

我希望得到字符串jonesy,返回,但我得到一个空字符串。我的错误在哪里?

4

5 回答 5

6

您的语法jQuery('<div id="method">')每次都创建一个新的 DIV。只有第一个添加了文本。

你想要的可能是这样的;

var myDiv = jQuery('<div id="method" style="display:none">'); // save the div in a var
myDiv.append("jonesy" + ','); // append to it
myDiv.text(); // read from the same DIV
于 2013-06-11T14:24:55.140 回答
3

它应该是这样的:

jQuery('<div id="method" style="display:none">jonesy,</div>').appendTo('body');
jQuery('#method').text();
  • 使用创建动态 div jQuery('<div id="method" style="display:none">jonesy,</div>')
  • 将新创建的 div 附加到 DOM,使用.appendTo('body')

小提琴演示#1

你可以用更好的方式做,比如:

// Create a new dynamic div
var $div = jQuery('<div/>', {
    id: 'method',
    style: 'display:none',
    text: 'jonesy,'
});

// Append the new div to the DOM
$div.appendTo('body');

// Check the console for the text
console.log(jQuery("#method").text());

小提琴演示#2

于 2013-06-11T14:24:48.887 回答
1

有两个问题。首先,这里的每个 jQuery 调用都创建了一个单独的 div。

要引用以前创建的 div,请通过选择器引用它,不要创建新的:

jQuery('<div id="method" style="display:none">').text("jonesy" + ',');
jQuery('#method').text()

但这也不会真正起作用,因为 div 从未添加到文档中。第二行在文档中查找匹配项。

尝试:

jQuery('<div id="method" style="display:none">').
  text("jonesy" + ',').
  appendTo($(document.body));
jQuery('#method').text()
于 2013-06-11T14:29:07.810 回答
1

我可以发现两个问题:

  1. 如果你想用 HTM L 提供函数jQuery()它需要是完整的独立 HTML。<div id="method"></div>是正确的,<div id="method">不是。
    编辑:刚刚测试,你的代码似乎工作正常。

  2. 该语法创建了一个新元素。如果要搜索现有元素,则需要使用 CSS 选择器。但是,您的元素既没有附加到 DOM,也没有保存在变量中,因此没有简单的方法可以访问它。

我想你想要这样的东西:

var div = jQuery('<div id="method" style="display:none"></div>').append("jonesy" + ',');
div.text();
于 2013-06-11T14:29:15.820 回答
1

你的选择器有点偏离我的朋友:

jQuery("div#method").append("jonesy" + ",");
console.log(jQuery("#method").text());
于 2013-06-11T14:24:29.840 回答