【问题标题】:Using jQuery to search for JavaScript assigned values to an object使用 jQuery 搜索 JavaScript 为对象分配的值
【发布时间】:2016-10-03 04:12:15
【问题描述】:

我知道这个问题是重复的,但我找不到任何关于它的信息,因为我似乎无法说出正确的问题。

我正在使用 MapBox.js 并创建了一个标记,该标记在其弹出消息中有一个按钮,可让您删除显示弹出窗口的标记。我从 Stack Overflow 获得了有效的代码,但它使用一个类来定位标记,我想为标记分配一个属性/属性,无论如何,我可以使用它来专门定位具有它的一个标记.我使用常规的 JavaScript 对象成员分配来做到这一点:

marker.uniqueID = Date.now().toString();

然后将 marker.uniqueID 分配给弹出消息中的删除按钮。 我使用了 Chrome 检查器,可以在标记对象和删除按钮 html 元素中看到这些分配的值。但是,当我尝试使用按钮的分配值查找地图标记时:

$( '.marker-delete-button[uniqueID="12345"]')

我使用上述和其他几个选择器返回一个空的匹配列​​表。因此,为了简化这一点,我创建了以下代码,得到了相同的结果:

<!DOCTYPE html>
<html>
  <head>
    <meta charset=UTF-8/>
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  </head>
  <body>
    <script>
      console.clear();
      var obj1 = { text: 'obj1' };
      var obj2 = { text: 'obj2' };
      var obj3 = { text: 'obj3' };

      obj1.a=1;
      obj2.a=2;
      obj3.a=3;

      var $a = $.attr( 'a' );
      console.log( $a );
      console.log( obj1 );
    </script>
  </body>
</html>

那么,我哪里错了?我知道我应该能够搜索具有特定属性/属性和特定值的 JavaScript 数组和对象,但我似乎无法完成这项工作。

谢谢!

【问题讨论】:

  • jQuery 在 DOM 中搜索匹配元素,而不是任意对象?
  • 是的,这不是 jQuery 的优点,而且这几乎肯定是不切实际或不可能的
  • 您没有显示任何生成标记和存储标记数据数组的相关代码

标签: jquery selection


【解决方案1】:

我查看了 MapBox.js,因为它对我来说是新的。它看起来很有趣。我试图了解您遇到的问题。

但是,首先,让我回应您发布的简化示例代码。最好在使用之前确保 jQuery 已加载。

$(function() {
});

以下代码将两个属性“a”和“b”添加到&lt;body&gt; DOM 元素。您可以在 Firefox 中对其进行检查。

var body = $("body").attr( 'a', 'avalue');
console.log(body);      
body.attr( 'b', 'bvalue');
console.log(body);

我不太明白你想通过以下方式做什么。它没有改变任何 html 元素。

var $a = $.attr('a');
console.log($a);

您是否希望它为&lt;html&gt; DOM 元素添加一个属性,以便您稍后可以使用如下所示的jQuery 选择它并在生成的“this”对象上运行一些代码?

$('[a]').function() {
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2014-04-02
    相关资源
    最近更新 更多