明确设置时无法访问元素属性

时间:2012-08-24 11:32:59

标签: javascript asp.net html

我有一个问题,我无法解决。 在我的班上,我设置了:

text.Attributes.Add("oldValue", text.Text);

调试代码我可以看到正确设置了值。当我使用chrome查看页面源时,我看到以下内容:

<input name="astextMon" type="text" value="4,25" 
       id="textMon" class="inputText"
       autocomplete="on" 
       onfocus="ValidateReadStatus(this.id,this.ValueId);SetFocus(this.id);"
       valueid="408412" 
       oldvalue="4,25" 
       onchange="return GridOnChange('0;0',this,'textMon',1,true);" 
       onkeydown="return GridOnKeyDown(this.id,'0;0');"           
       ondblclick="SetTextPos('0;0');"
>

如您所见,oldvalue属性已设置且值正确,但如果我尝试访问该属性,则始终会undefined。即使从Chrome控制台访问元素也是如此。

我在这里缺少什么?

EDIT。在此处放置代码时,会发生name属性中的拼写错误。那不是问题。我认为区分大小写也不是问题,因为当我删除时:

text.Attributes.Add("oldValue", text.Text);

来自我的班级,oldvalue =&#34; 4,25&#34;属性从元素中消失。我也尝试将oldValue更改为oldvalue,但同样的问题仍然存在。

我正在尝试使用

访问该对象
alert(element.oldvalue) or alert(element["oldvalue"]) or 
alert(element["oldValue"]) or alert(element["oldValue"]) none work.

如果我输入alert(element.value)它会正确警告值属性。

5 个答案:

答案 0 :(得分:0)

也许问题是在你的代码片段中输入标记无效,在name属性之后你必须添加一个引号char。

<input name="astextMon" ...>

答案 1 :(得分:0)

错过name=astextMon"中的第一个引号,将其更改为name="astextMon"

答案 2 :(得分:0)

JavaScript区分大小写:
... oldvalue="4,25" ...text.Attributes.Add("oldValue", text.Text);
请参阅2 不同的属性。

答案 3 :(得分:0)

您可以使用类似的内容来获取您定义的属性:

document.getElementById('textMon').attributes['oldvalue'].value;

您将获得:oldvalue: 4,25

更多的事情:

  1. name=astextMon"应为name="astextMon"

答案 4 :(得分:0)

好的,所以我用

解决了我的问题
$(element).attr("oldValue");

我不知道为什么在使用JQuery时我可以很好地访问该属性,但没有它它是未定义的。如果有人有答案,我很乐意听到。