javascript - jQuery 对象 `toString()` 方法

标签 javascript jquery

我扩展了 jQuery 对象以返回它的内部 HTML...

$.fn.toString = function() {
  return this.html();
};

console.log("The inner HTML is: " + $("<div>Here, <i>there</i>, everywhere</div>"));

为什么这不是默认行为?这会破坏什么吗?


已更新以回应答案/评论

首先,除了依赖于将 jQuery 对象强制转换为字符串并匹配该字符串中的文本的类型检查之外,我看不出它会如何破坏。我错了吗?

这将返回一个集合中所有元素的 outerHTML,连接起来。这对其他人有意义吗?对我来说,这很有意义。

var li, list;

$.fn.toString = function() {
  var out;
  out = [];
  $.each(this, function(k, v) {
    return out.push($(v)[0].outerHTML);
  });
  return out.join("\n");
};

list = $("<ul>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n</ul>");

li = $("li", list);

console.log("The html of it..: " + li);

最佳答案

Object.toString 返回表示对象的字符串(来自文档)。

在讨论 jQuery 对象时,Object.toString 的预期返回值是 "[object Object]"

让它返回 HTML 只是糟糕的设计,并且可能会破坏内容。

另外,根据我们想要从 jQuery 对象中检索的内容,使用不同的显式方法是有意义的:.html()对于 HTML,.text()用于剥离标签。

关于javascript - jQuery 对象 `toString()` 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15662542/

相关文章:

jquery - 悬停时,隐藏图像显示 div

javascript - 如何使用 Bootstrap 在鼠标悬停时制作动态切换图像?

javascript - 一行中的多个 <select> 下拉列表(Foundation css import)

jquery - 验证动态添加的表单

javascript - 在复选框选择上使用 img src 创建 div

javascript - 使这种字符串数组发生变化的最优雅的方法是什么?

javascript - 仅对一个元素使用each-ready 函数?

javascript - 当reactjs中的变量更新时,以及如何强制更新

javascript - 使用 vuejs3 CDN 在页面中声明外部组件的正确方法

javascript - jQuery 绑定(bind)三个选择菜单隐藏/显示