gpt4 book ai didi

javascript - jQuery 像 Linq 一样?

转载 作者:行者123 更新时间:2023-11-28 12:09:21 26 4
gpt4 key购买 nike

我的谷歌搜索能力让我失望。

我的理解是,有一种方法可以让我开始编写 jQuery,使其与 Linq 非常相似。我的意思不一定是语法,而是更多的定义(使用内联/匿名函数)。但是,我不明白如何将其带到那里。

为了帮助我,我创建了一个带有 TextArea 的页面,并且我希望 TextArea 在插入换行符时增加高度(即 rows=10 或其他)。所以我想使用以下脚本来完成此操作:

<script language="javascript" type="text/javascript">
$(document).ready(function () {
$(#mytxt).keypress(function () {
$(this).attr(rows, $(this).val().select(function (x) { x == '\n'}).count());
});
});
</script>

那么,如果我继续以 Linq 式的方式执行此操作,我该如何执行此操作呢?请注意,我知道我可以在 javascript 中以许多其他方式执行此操作(正则表达式、在分隔符上分割字符串等),但我想以类似 Linq 的方式执行此操作。另外,我不想使用任何 third-party libraries/plugins为了帮助解决这个问题 - 我正在寻找 jQuery 标准的东西。再说一遍,精确的语法并不是我想要的 Linq(尽管这就是我编写示例的方式)——只是概念。

最佳答案

你是对的。LINQ 使用 IQueryable 类型运行,而 jQuery 使用 jQuery 运行:)。尽管就数据而言,IQueryable 比 jQuery 对象抽象得多。然而,您误解了哪些数据是非 jQuery 的概念。 jQuery 对象围绕 DOM 对象,并且只与它们一起操作。值可以被传递和扔来扔去,但必须有 DOM,否则 jQuery 就没有意义了。相比之下,IQueryable 可以处理数据、值或对象。这是两个完全不同的概念,只是在使用时有一些相似的原理。

  • $(#mytxt)应该是$("#mytxt")
  • val()返回一个标量,它不是 jQuery,因此您无法使用 select() 应用事件处理程序
  • $(document).ready(callback)语法已被弃用,请使用 jQuery(callback)相反,或者只是 $(callback)
  • 我建议您检查事件,看看按下了什么键,以免每次按下键时都调整 DOM 元素的大小。您可以传递一个参数,即 event到回调函数,它将接收有关事件的数据。 event.which将是字符代码。欲了解更多信息,请访问this page

因此,您将有这样的选择:

<script language="javascript" type="text/javascript">
$(function () {
$("#mytxt").keypress(function (event) {
if(event.which==13)
$(this).attr("rows", $(this).val().split("\n").length );
});
});
</script>

请注意val()返回一个标量(一个通用的 JavaScript 字符串),从这里开始它与 jQuery 无关。 split()是一个用于字符串操作的 JavaScript 函数,length 也是如此。用于测量数组长度的 JavaScript 属性。

关于javascript - jQuery 像 Linq 一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com