【问题标题】:how to add multiple "actual" element objects in JQuery selector如何在 JQuery 选择器中添加多个“实际”元素对象
【发布时间】:2020-05-24 06:43:59
【问题描述】:

我正在研究 Google Apps 脚本并使用 JQuery。我想在 JQuery 选择器中放置多个实际元素。我想将 actual 元素放在选择器中。

我想要:

$(kojiNameElem, tankaElem, suryoElem, unitElem)

不喜欢(虽然可以):

$(".kojiName, .tanka, .suryo, .unit")

请看下面的代码:

var kojiNameElem = $("#koji_"+koji_id).find(".kojiName");
  var tankaElem = $("#koji_"+koji_id).find(".tanka");
  var suryoElem = $("#koji_"+koji_id).find(".suryo");
  var unitElem = $("#koji_"+koji_id).find(".unit");

  $(kojiNameElem, tankaElem, suryoElem, unitElem).on("focusin",function(e) {
    console.log("focusin");
  });

它仅适用于kojiNameElem。其他元素没有。

我知道它适用于 JQuery 选择器中的单个元素,如下所示。

$(kojiNameElem).on("focusin",function(e) {
        console.log("focusin");
      });

你能帮帮我吗?

【问题讨论】:

  • 这能回答你的问题吗? jQuery OR Selector?
  • @Nick 结果与我的预期相同,但不能完全回答我的问题。我们没有办法将多个实际元素直接放入 JQuery 选择器中,因为单个实际元素可以放入 JQuery 选择器中?
  • @Nick 这与使用字符串选择器的问题不同,但这里的 OP 想要使用对象并且已经在字符串中展示了 , 的知识
  • @freedomn-m 该问题的第二个答案明确指出“如果您有多个需要连接的 jQuery 对象,则使用逗号可能还不够。”跨度>

标签: javascript jquery google-apps-script


【解决方案1】:

你可以这样做

var koji_id=1;
  var kojiNameElem = $("#koji_"+koji_id).find(".kojiName");
  var tankaElem = $("#koji_"+koji_id).find(".tanka");
  var suryoElem = $("#koji_"+koji_id).find(".suryo");
  var unitElem = $("#koji_"+koji_id).find(".unit");

  $("#koji_"+koji_id).on("click", '.kojiName,.tanka,.suryo,.unit',function(e) {
    console.log($(this).text());
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="koji_1">
  <span class="kojiName">kojiName</span>
  <span class="tanka">tanka</span>
  <span class="suryo">suryo</span>
  <span class="unit">unit</span>
</div>
您也可以使用添加方法
  var koji_id=1
  var koji= $("#koji_"+koji_id);
  var kojiNameElem = koji.find(".kojiName");
  var tankaElem = koji.find(".tanka");
  var suryoElem = koji.find(".suryo");
  var unitElem = koji.find(".unit");
  
  $(kojiNameElem).add(tankaElem).add(suryoElem).add(unitElem).on("click",function(e) {
    console.log($(this).text());
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="koji_1">
  <span class="kojiName">kojiName</span>
  <span class="tanka">tanka</span>
  <span class="suryo">suryo</span>
  <span class="unit">unit</span>
</div>

【讨论】:

  • 谢谢。有用。但是我们没有办法将多个实际元素直接放入 JQuery 选择器中,因为单个实际元素可以放入 JQuery 选择器中?
  • 您能说一下您的意见吗?它是包含类还是其他东西的数组?
  • 你可能想要添加我添加的方法来回答@Helbert
  • 是的,add 方法符合我的期望。感谢您的帮助! @pc_coder
【解决方案2】:

没有办法在一个 单个 选择器中组合多个 jquery 对象 - 这样做的方法是 .add()

演示:

var a = $("#a");
var b = $("#b");
var c = $("#c");

var arr = a.add(b).add(c).map((i, e)=>$(e).text()).toArray();
console.log(arr)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>

【讨论】:

  • 是的,这就是我想知道的。 “没有办法在一个选择器中组合多个 jquery 对象”。我们可以使用 add 方法。这个答案对我的 OP 来说更直接,因此将其作为已接受的答案进行了检查。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 2010-12-08
  • 2012-06-29
  • 1970-01-01
相关资源
最近更新 更多