除了类、id 和文本之外,我还如何在 jQuery 中的元素中传递变量

Other than class, id and text, how else can I pass a variable within an element in jQuery?

本文关键字:jQuery 变量 元素 id 文本      更新时间:2023-09-26

我有一个采用类和id的情况,但我需要在jQuery中传递一个变量。 你怎么推荐?

.HTML

<input
    type="text"
    id="cannot_change_this"
    class="rather_not_append_extra_classes_just_for_a_variable"
    value="Full Text Name"
    hash="ABCDE">

通过自动完成选择的每个值都有一个关联的哈希。 在上面的示例中,该值可能Full Text Name,但这不是唯一的。 我真正需要传递的是哈希:ABCDE

无法更改 id,我宁愿不添加额外的类,而必须过滤掉用于样式的类以获取我的哈希值。 而且由于这是一个input我也不能使用 .text()。

我还能如何将ABCDE哈希传递给jQuery?

查看使用 jQuery 的数据方法

http://api.jquery.com/jQuery.data/

您可以在 javascript 中计算值的哈希值,然后将其设置为输入的数据。

此外,如果使用 HTML5,则可以在 HTML 中专门声明数据属性。 因此,您可以使用 data-hash=HASH 等属性来设置数据。

或者,如果你不关心舒适性,或者你没有使用HTML5,你可以设置自己的属性,比如

<input type="text" id="cannot_change_this"
class="rather_not_append_extra_classes_just_for_a_variable" 
value="Full Text Name" hash="ABCDE" />

并像这样用jQuery阅读它:

var hash = $('input#idOfInput').attr('hash');

如果我做对了。

设置值:

$("#cannot_change_this").data("hash", hashValue);

稍后获取值:

$("#cannot_change_this").data("hash");

你可以只使用 title 属性:

<input type="text" id="cannot_change_this"
class="rather_not_append_extra_classes_just_for_a_variable" 
value="Full Text Name"title="ABCDE" />

它是所有输入的标准属性。

你可以有这样的东西:

jQuery(document).ready(function(){
//SET:
 jQuery("#cannot_change_this").attr("new-value", "ABCDE");
//READ:
 var val = jQuery("#cannot_change_this").attr("new-value");
 alert(val);
 });