【问题标题】:Jquery to Get attribute values of dom elements matching a class name [closed]Jquery获取与类名匹配的dom元素的属性值[关闭]
【发布时间】:2013-05-20 08:08:40
【问题描述】:

我有一系列html元素如

<li id="1" class="jstree-unchecked jstree-open">
<li id="2" class="jstree-checked jstree-open">
<li id="3" class="jstree-unchecked jstree-open">
<li id="4" class="jstree-checked jstree-open">
<li id="5" class="jstree-checked jstree-open">
<li id="6" class="jstree-unchecked jstree-open">
<li id="7" class="jstree-undetermined jstree-open">

我想要类名为 {jstree-checkedjstree-undetermined} 的元素的 id。

我尝试过使用选择器,但是 JQuery 中有 linq 方式吗?

您能帮忙看看 jQuery 会是什么样子吗? id 的列表可以用逗号分隔。

输出:“2,4,5,7”

【问题讨论】:

  • 或者您最多可以花一个小时阅读the jQuery API documentation,然后立即知道如何自己做。
  • 旁注:虽然id 以数字开头的值是valid in HTML,但它们didn't used to be 仍然是not valid in CSS,因此(因为jQuery 使用CSS 选择器)通常最好避免使用它们。
  • @T.J.Crowder 我认为 OP 实际上并没有在他的代码中使用这些值,只是想要“示例值”来演示。我当然希望至少。将任意命名的 ID 分配给元素是没有意义的。不仅如此,将顺序 ID 分配给元素通常表明存在更大的问题。如果您阅读本文的任何人都在做这种事情,请考虑您的代码结构。 T.J.仍然,可靠的评论。
  • @T.J.Crowder 关于您的后一条评论,我起初在选择器中犯了一个错误,但已更正,因为它应该是 OR 而不是 and
  • 我已经更正了这个问题。

标签: javascript jquery html jquery-selectors


【解决方案1】:

最好的方法是使用.map()方法:

var ids = $(".jstree-checked, .jstree-undetermined").map(function() {
    return this.id;
}).get();

console.log(ids.join());  // "2,4,5,7"

【讨论】:

  • 似乎不公平的是,问题的质量差似乎阻止人们投票赞成好的答案,+1。
  • .map 的使用非常好且恰当。我唯一要改变的是首先调用.get() 并使用本机.map,但这个解决方案更多的是跨浏览器投诉。
  • @T.J.质量差的问题?否则你会如何保持问题简单..?
  • @jaxxbo:简单的问题很好,但更好的问题会继续说“我尝试过以下方法:[在此处插入一些代码],但没有”不行。”也就是说,对于 Stack Overflow 来说,一个好的问题展示了解决问题所付出的努力,而不是陈述一般要求并要求其他人解决整个问题。愿景:+1。
猜你喜欢
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
相关资源
最近更新 更多