Javascript 使用jquery获取属性值
我试图用jquery从属性中获取31003值Javascript 使用jquery获取属性值,javascript,jquery,Javascript,Jquery,我试图用jquery从属性中获取31003值 <a class= "findOption" data-clickaction="changeFilter" data-actionvalue=" {"Company":"31003", "val": "mostrecent";}" href="javascript:void(0);">Most Recent</a> 我试过了 $(“.findOptions”).attr('Company').value() $(“.
<a class= "findOption" data-clickaction="changeFilter" data-actionvalue=" {"Company":"31003", "val": "mostrecent";}" href="javascript:void(0);">Most Recent</a>
我试过了
$(“.findOptions”).attr('Company').value()
$(“.findOptions”).attr('data-actionvalue')
我卡住了。您可以使用:
正如@Barmar指出html无效,您应该在html中这样做:
data-actionvalue='{"Company":"31003", "val": "mostrecent"}'
首先,您的HTML不正确。由于在
dataactionvalue
中的JSON中使用双引号,因此必须使用单引号作为属性值周围的分隔符。否则,Company
前面的引号将结束该属性
此外,值中不应该有分号(;
)`,这是无效的JSON
<a class= "findOption" data-clickaction="changeFilter" data-actionvalue='{"Company":"31003", "val": "mostrecent"}' href="javascript:void(0);">Most Recent</a>
或[]
:
$('.findOption').data('actionvalue')['Company']
我认为这应该行得通
$(".findOption").data('actionvalue')['Company'];
您的代码中有几处更正: 1) 修复“actionvalue”,如我的代码所示。 2) 使用findOption而不是findOption(它在代码中不存在)
var obj=$(“.findOption”).data('actionvalue');
$(“#结果”).text(对象公司)代码>
公司
是字符串的一部分,该字符串是数据操作值
的值<代码>公司
本身不是一个属性。因此,您需要在该字符串中进行一些搜索。它也是无效的HTML,因为你有双引号。避免在这里和那里使用双引号。。。。正确地使用单引号和双引号来区分它们。我认为您需要使用单引号,因为数据actionvalue属性将读作data actionvalue=“{”
和Company:“
将尝试像另一个属性一样工作。"
<用于阻止/打开/关闭属性数据。回答很好,但我只是好奇。如果动态创建此锚定标记,默认情况下不会使用双引号吗?@NewToJS无所谓。@NewToJS如果动态创建,则根本不使用引号,这只是HTML语法的一部分。如果动态创建,则是错误的st将DOM作为对象进行操作。@BhojendraNepal我想问一下我们的好奇心。@NewToJS如果您使用不带引号的话,那么它也可以工作。哇,那eval()
完全没有必要。@Ja͢ck,$('.findOption').data('actionvalue')['Company']或$('findOption').data('actionvalue')).Company不起作用。因此,我选择使用eval来获得结果。不起作用,因为它不被识别为JSON,因为您对键和值使用单引号…相反,您应该在内部使用双引号,对HTML属性使用单引号。
$('.findOption').data('actionvalue')['Company']
$(".findOption").data('actionvalue')['Company'];