除了class,id和text之外,我还能如何在jQuery中的元素中传递变量?

时间:2012-08-10 18:23:58

标签: javascript jquery html ajax variables

我遇到了类和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?

4 个答案:

答案 0 :(得分:2)

使用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');

答案 1 :(得分:1)

如果我做对了。

设定值:

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

稍后获取值:

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

答案 2 :(得分:1)

您可以使用title属性:

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

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

答案 3 :(得分:0)

你可以拥有类似的东西:

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);
 });