2014-09-02 17 views
0

最近我一直在使用AES加密,128比特加密我的主键,产生的值,如Jquery的匹配失败长串长度的

eyJpdiI6ImRyMXR5QllPVHM5OEJqdFM3azl2SGc9PSIsInZhbHVlIjoiXC82dVhLQ3pWYnd6QkZZdHZDZlRWSmc9PSIsIm1hYyI6IjgwNmVlMTI0Y2EzMWVmMGI1NTk1OWM5ZGNkYzA0ZWQwYzMwYjNhYzJmOTg2NjUzOTBjZjQ3MmE3YWUwYzY4ZDEifQ==

在数据放置值HTML属性属性,如下面的例子,工作得很好。

<a data-pk="eyJpdiI6ImRyMXR5QllPVHM5OEJqdFM3azl2SGc9PSIsInZhbHVlIjoiXC82dVhLQ3pWYnd6QkZZdHZDZlRWSmc9PSIsIm1hYyI6IjgwNmVlMTI0Y2EzMWVmMGI1NTk1OWM5ZGNkYzA0ZWQwYzMwYjNhYzJmOTg2NjUzOTBjZjQ3MmE3YWUwYzY4ZDEifQ=="></a>

但是,如果我尝试匹配jQuery的是data-pk属性,见下文,没有HTML元素将被退回

任何想法?

$("a[data-pk='eyJpdiI6ImRyMXR5QllPVHM5OEJqdFM3azl2SGc9PSIsInZhbHVlIjoiXC82dVhLQ3pWYnd6QkZZdHZDZlRWSmc9PSIsIm1hYyI6IjgwNmVlMTI0Y2EzMWVmMGI1NTk1OWM5ZGNkYzA0ZWQwYzMwYjNhYzJmOTg2NjUzOTBjZjQ3MmE3YWUwYzY4ZDEifQ==']")

见的jsfiddle:http://jsfiddle.net/8fm1tqma/

没有什么在W3C HTML5 draft关于限制在值长度data-属性。

+1

找到PK的长度,PK值摆脱[0]您的jsfiddle,你想找到的元素,你的长度”重新询问第一个找到的元素的长度。然后它会提醒'1' – Jason 2014-09-02 05:25:22

+0

确实它现在工作,但无法在我的应用程序中使用jQuery 2.1.1 – Mysteryos 2014-09-02 05:30:10

+0

不知道确切的原因。但请尝试使用'.size()'并查看它是否适用于您的应用。 – 2014-09-02 05:31:36

回答

0

更新您的代码$("selector")[0]回报您元素的dom(在这种情况下HTML <a> Tag)和dom没有名为length财产。那就是为什么你得到。 undefined
通过dom.getAttribute("attribute-name")方法从dom获取您的data-pk属性。

如: -

alert($("a[data-pk='eyJpdiI6ImRyMXR5QllPVHM5OEJqdFM3azl2SGc9PSIsInZhbHVlIjoiXC82dVhLQ3pWYnd6QkZZdHZDZlRWSmc9PSIsIm1hYyI6IjgwNmVlMTI0Y2EzMWVmMGI1NTk1OWM5ZGNkYzA0ZWQwYzMwYjNhYzJmOTg2NjUzOTBjZjQ3MmE3YWUwYzY4ZDEifQ==']")[0].getAttribute("data-pk").length);//call getAttribute on dom which returns pk 

这里的http://jsfiddle.net/vikrant47/8fm1tqma/5/

或者根本就用$.data()

alert($("a").data("pk").length);//length of pk data 

这里的小提琴http://jsfiddle.net/vikrant47/8fm1tqma/2/

0

拨弄你可以得到的文本特别是匹配dat使用

alert($("a[data-pk='eyJpdiI6ImRyMXR5QllPVHM5OEJqdFM3azl2SGc9PSIsInZhbHVlIjoiXC82dVhLQ3pWYnd6QkZZdHZDZlRWSmc9PSIsIm1hYyI6IjgwNmVlMTI0Y2EzMWVmMGI1NTk1OWM5ZGNkYzA0ZWQwYzMwYjNhYzJmOTg2NjUzOTBjZjQ3MmE3YWUwYzY4ZDEifQ==']").text()); 

,并且可以使用

alert($("a").data('pk').length);