Javascript 在数据属性中查找值
希望我能正确地解释这一点 所以我有一个包含大量数据的数据属性,在这个例子中,我想找到每个篮子产品ID,并将它们作为单独的字符串输出 我正在努力解决的主要问题是如何在现有的其他数据中找到这些数据 以下是我正在使用的标记:Javascript 在数据属性中查找值,javascript,jquery,html,Javascript,Jquery,Html,希望我能正确地解释这一点 所以我有一个包含大量数据的数据属性,在这个例子中,我想找到每个篮子产品ID,并将它们作为单独的字符串输出 我正在努力解决的主要问题是如何在现有的其他数据中找到这些数据 以下是我正在使用的标记: <div class="hidden js-page-context" data-page-context="{ "basketProductIds": "FZZ83047-157-16,FZZ84695-173
<div class="hidden js-page-context" data-page-context="{
"basketProductIds": "FZZ83047-157-16,FZZ84695-173-20",
"basketLastModified": "Mon Aug 12 12:06:43 GMT 2019",
"redirectUrl": "https://www.test.com"
}"></div>
代码笔:
任何帮助都会非常棒:D您可以用来定位数据-*
html元素:
const test=$('.hidden').data(“页面上下文”)
console.log(测试)
这很有效
var test = $('.hidden').attr("data-page-context"); // will return the JSON
let testObj = JSON.parse(test);
console.log(testObj.basketProductIds); // The id you need
我认为解决您的问题的最佳方法是首先,转换您的字符串:
var test = $('.hidden').attr("data-page-context");
使用JSON.parse(test)将其转换为适当的JSON
编辑:如其他留言和评论中所述:您可以使用以下命令跳过此部分:
var item= $('.hidden').data("page-context");
获取所有个人id后:
var ids = item.basketProductIds.split(",");
获取一个ID数组
检查下面我的代码片段
var test=$('.hidden').attr(“数据页上下文”);
var item=JSON.parse(测试);
控制台日志(项目);
console.log(“id”,item.basketProductIds);
var id=item.basketProductIds.split(“,”);
控制台日志(ids)代码>
也许你是这个意思
$(…).data(“页面上下文”)
将返回解析后的数据-无需使用JSON.parse
下面的代码将找到类为js page context
的所有div,并返回在其中任何一个中找到的所有basketproductid的列表
var list=$('.js页面上下文').map(
(551;,div)=>$(div).data(“页面上下文”).basketProductId.split(“,”)
).get()
控制台日志(列表)代码>
将返回字符串“123”-不,不会。我看不出你为什么会这么想,123
在HTML中的任何地方都没有出现。我想你没有理解我的原意,忽略那条评论,因为这只是获取数据属性内部的所有内容,我的问题是,我可以在数据属性的一侧定位或找到特定的值吗,因此,找到篮子产品ID并将其吐出,而不是吐出其中的所有内容。“我认为你没有领会我的原意”——当你首先问一个明确的问题时,这会有所帮助。那么你是在问如何解析JSON吗?重复:@NickElse,尝试使用Ulysse BN的答案,它可以减少一个步骤,但这并不能让他们明白他们似乎在寻找什么让你认为OP不知道如何从属性中提取数据.attr(“整个_属性”)
也将返回相同的权限?@KrishnaPrashatt-他们正在使用.attr(“数据-*”)
,这将给出一个未分析的字符串。我对这个问题的解释是,他们想要使用给定的数据作为对象。这就是.data()
提供的功能@昆廷-问题很不清楚,也许我的回答应该是评论,让我们看看他们是否进一步编辑。@UlysseBN,你的解释毕竟是正确的。所以这个+1,因为它减少了一步。我来试试:)天才!它成功了,我接受这个。$(.hidden”).data(“页面上下文”)
将返回解析后的数据-无需使用JSON.parse无需使用JSON.parse
如同使用jQuery
的data
方法一样,将返回一个对象并准备使用。您可以使用jQuery的避免JSON.parse
步骤。数据
,请参阅。@UlysseBN您提到它是对的。$(.hidden”).data(“页面上下文”)
将返回解析后的数据-无需使用JSON.parse
var ids = item.basketProductIds.split(",");