2016-01-17 27 views
0

所以我发现了data- *属性,并且我一直在使用它与ajax来设置我的链接元素目标上的id。例如:在输入元素上使用data- *

Ex;

<a id="link_id" href="url_for_no_ajax" class="some_class" data-container="#main">Display Text</a> 

所以这样我可以创建一个PHP函数,使我的链接在非Java的用户,我使用id属性和我的AJAX的数据容器的属性。

它工作正常。

我想对我的输入元素做同样的事情,但由于某种原因,它不起作用。 data- *属性未显示在页面的源中。

所以我必须假设,我不能使用数据 - *与输入的

所以我的问题是什么元素可以采取数据 - 属性*属性? 或者如果回答女巫的速度更快无法接受?

坦克你StackOverFlow社区! (=

EDIT

的行输出我从PHP输入:

echo '<input id="'.$id.'" type="'.$type.'" name="'.$name.'" size="'.$size.'" class="'.$class.'" value="'.$value.'"><br><br>'; 

然后我如何检索与Jquery的这个数据属性为Ajax的值:

var data_type = ($(this).attr("data-type")); 

如果我是alert(data_type)它告诉我它的undefined。

+1

'输入'元素不出现在问题? – guest271314

+1

数据元素与输入(以及我所知的其他每个元素)一起工作,如果您没有看到它们,问题必须出现在您的代码中。请显示相关代码。 – Drown

+1

你的元素已经有一个ID,为什么要分配一个ID? – adeneo

回答

1

输入可以采取的数据元素。下面是测试情况:

jsFiddle Demo

HTML:

<a href="#" data-container="a-tag">Click Me</a><br><br> 
<input type="text" data-container="an_input" /><br><br> 
<div data-container="a_div">Div here</div> 

JS:

$('*').click(function(){ 
    var d = $(this).data(); 
    alert(d.container); 
    return false; 
}); 

个参考文献:

http://ejohn.org/blog/html-5-data-attributes/

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

的。数据()方法允许我们的方式,是从循环引用,因此从安全的任何类型的数据附加到DOM元素内存泄漏。

1

所以我必须假设,我不能使用数据 - *与输入的

data-*属性是全局属性,并可以在input元素被使用。

var span = document.createElement("span"); 
 
span.innerHTML = document.querySelector("input").dataset.input; 
 
document.body.appendChild(span);
<input data-input="123" />