获取jquery中运行时更改的标记属性

get run time changed tag attribute in jquery

本文关键字:属性 jquery 运行时 获取      更新时间:2023-09-26

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
$("#2").attr({"data-sort-code":003});
function callfun()
{
  
var code=$("#2").data("sort-code");
  
  $get('lblName').value=code;
alert(code);
  
}
</script>
<html>
  <body>
        <ul>
   <li><a id="1" data-sort-code="001">Comapny 1</a>
	<ul>
	   <li><a id="2" data-sort-code="001001"> Company 1.1</a>
	   </li>
	   <li><a id="3" data-sort-code="001002"> Company 1.1</a>
	   </li>
	</ul>
   </li>
   <li> <a id="4" data-sort-code="002"></a>
   </li>
</ul>
    
    <input type="button" onclick="callfun();" value="Click" />
    <input type="label" id="lblName"/>
    </body>
  </html>

<ul>
   <li><a id="1" data-sort-code="001">Comapny 1</a>
    <ul>
       <li><a id="2" data-sort-code="001001"> Company 1.1</a>
       </li>
       <li><a id="3" data-sort-code="001002"> Company 1.1</a>
       </li>
    </ul>
   </li>
   <li> <a id="4" data-sort-code="002">Company 2</a>
   </li>
</ul>

如果我在运行时将id=2的排序代码更改为003如下所示,

$("#2").attr({"data-sort-code":003});

它在运行时更改,但如果尝试获取排序代码,则在同一运行时更改如下所示,

var code=$("#2").data("sort-code");
alert(code);

警报消息仍然显示为"001001"

有谁能告诉我如何在运行时获得排序代码吗。

检查这个小提琴

更换

$("#2").attr({"data-sort-code":003});

带有

$("#2").attr("data-sort-code","003");

不管怎样,003将变成3,除非用引号括起来

同时使用进行检查

var code=$("#2").attr("data-sort-code");
alert(code);

下面的代码会修复它。只需在这两个地方使用data函数。用设置

$("#2").data("sort-code","003");

并用获取

$("#2").data("sort-code")

如果将数据变量设置为

$("#2").attr({"data-sort-code":003});

比使用:

code=$("#2").attr("data-sort-code");
alert(code);

如果你使用

var code=$("#2").data("sort-code");
alert(code);

而不是使用设置

$("#2").data("sort-code","003");