Javascript 在html中存储变量并使用text()

Javascript 在html中存储变量并使用text(),javascript,asp.net-mvc-2,Javascript,Asp.net Mvc 2,我有一个特殊的场景,我需要一个文件名,不是一次而是两次,因为我将变量传递给ASP.NET MVC控制器。将文件名存储在诸如span或div之类的DOM元素中,然后使用jQuery的.text()函数获取值,这是一个好主意吗?或者更好的方法是使用初始化后不断操作的类似JSON的对象吗 然而,问题仍然存在。将变量存储在HTML DOM元素中是一个好主意还是一个坏主意?这两种方法都可以,将数据存储在DOM中也可以。这更取决于您尝试完成的操作的复杂性,这听起来很简单——存储文件名。我想你这样做应该没问题

我有一个特殊的场景,我需要一个文件名,不是一次而是两次,因为我将变量传递给ASP.NET MVC控制器。将文件名存储在诸如span或div之类的DOM元素中,然后使用jQuery的.text()函数获取值,这是一个好主意吗?或者更好的方法是使用初始化后不断操作的类似JSON的对象吗


然而,问题仍然存在。将变量存储在HTML DOM元素中是一个好主意还是一个坏主意?

这两种方法都可以,将数据存储在DOM中也可以。这更取决于您尝试完成的操作的复杂性,这听起来很简单——存储文件名。我想你这样做应该没问题。在JSON对象中存储也很有效,我会选择最适合您的结构,并且更容易与客户机/服务器握手的方式。

任何一种都可以,在DOM中存储数据都可以。这更取决于您尝试完成的操作的复杂性,这听起来很简单——存储文件名。我想你这样做应该没问题。存储在JSON对象中也能起作用,我会选择最适合您的结构,并且更容易与您的客户机/服务器握手的方式。

正如@Atticus所说,无论哪种方式都可以,我都会根据我需要的数据来做:如果数据特别绑定到元素,我会将其存储在元素上;如果页面更一般,我将使用JSON符号传回一个对象


在DOM元素上存储数据时,不需要将它们作为文本存储在元素中。您可以使用。这些在HTML5中是有效的,现在可以在所有浏览器中使用。唯一的缺点是,如果您使用验证作为工作流程的一部分,而您还没有使用HTML5进行验证(这并不奇怪,验证程序还没有完全准备好,因为规范仍在不断变化!),那么它们不会在HTML4.01或以下版本中进行验证。但是浏览器对它们很好,这是HTML5编纂(并主导)当前实践的领域之一,而不是创新。

正如@Atticus所说,无论哪种方式都可以,我都会根据我需要数据的目的来做:如果数据特别绑定到元素,我会将其存储在元素上;如果页面更一般,我将使用JSON符号传回一个对象


在DOM元素上存储数据时,不需要将它们作为文本存储在元素中。您可以使用。这些在HTML5中是有效的,现在可以在所有浏览器中使用。唯一的缺点是,如果您使用验证作为工作流程的一部分,而您还没有使用HTML5进行验证(这并不奇怪,验证程序还没有完全准备好,因为规范仍在不断变化!),那么它们不会在HTML4.01或以下版本中进行验证。但浏览器对它们很好,这是HTML5编纂(并主导)当前实践的领域之一,而不是创新。

@TJ——真的吗?因此,您也可以将数据-*视为一个自定义属性,比如说,将一些相关信息存储到控件,比如说?如果我们想知道某个字段的值是否与原始值不同,您可以重新读取您的响应。。那正是你说的。Perfect@Atticus当前位置确实可以,但在您的示例中,您实际上不必这样做
input[type=text]
元素使用“value”属性为元素的
value
属性的初始值设定种子,但如果
value
属性发生更改,“value”属性则不会更改。(通过设计)此外,元素的
defaultValue
属性应该反映它们最初创建时的值。但这是离题。是的,您可以使用
data-*
属性在DOM元素上存储您想要的任何内容。@Atticus(和任何潜伏者):在我上面的评论中有很多“值”,一个例子可以说明问题,因此:请注意,对于所有
input
元素,这种行为不一定相同
type='text'
的行为是这样的,但(例如)
type='button'
。(为什么不呢?我不知道。)@TJ——谢谢,很好的例子。说这个我感到有点尴尬,但我不知道defaultValue属性。。实际上,我在Visual Studio中发现它时就知道它存在,但我认为它只是ASP控件处理数据绑定的一个属性。。。数据-*简直太棒了。@TJ——真的吗?因此,您也可以将数据-*视为一个自定义属性,比如说,将一些相关信息存储到控件,比如说?如果我们想知道某个字段的值是否与原始值不同,您可以重新读取您的响应。。那正是你说的。Perfect@Atticus当前位置确实可以,但在您的示例中,您实际上不必这样做
input[type=text]
元素使用“value”属性为元素的
value
属性的初始值设定种子,但如果
value
属性发生更改,“value”属性则不会更改。(通过设计)此外,元素的
defaultValue
属性应该反映它们最初创建时的值。但这是离题。是的,您可以使用
data-*
属性在DOM元素上存储您想要的任何内容。@Atticus(和任何潜伏者):在我上面的评论中有很多“值”,一个例子可以说明问题,因此:请注意,对于所有
input
元素,这种行为不一定相同
type='text'
的行为是这样的,但(例如)
type='button'
。(为什么不呢?我不知道。)@TJ——谢谢,很好的例子。说这个我感到有点尴尬,但我不知道defaultValue属性。。实际上,我在VisualStudio中发现它时就知道它的存在,但我认为它只是一种财产