jQuery从动态创建的div中获取id值

4
<div id="tag<%=count++%>" value="val1">
<div id="tag<%=count++%>" value="val2">
<div id="tag<%=count++%>" value="val3">

在jQuery中,点击事件需要获取div的值。创建的div的确切数量是动态的。

1
如果您点击 div,则 id 将始终作为 this.id 可访问。 - moonwave99
3个回答

11

您应该使用 input 而不是 div:

试试这个:

HTML :

<input type="text" id="tag<%=count++%>" value="val1"/>
<input type="text" id="tag<%=count++%>" value="val2"/>
<input type="text" id="tag<%=count++%>" value="val3"/>

jQuery:

$( document ).ready(function() {
 $('input[id^="tag"]').on('click', function() {  
    alert(this.value);
 });
});

实时演示

使用 div 元素:

尝试这样做:

$( document ).ready(function() {
 $('div[id^="tag"]').on('click', function() {  
    alert($(this).attr('value'));
 });
});

演示


如果您已经得到了问题的解决方案,您应该接受一个答案 :) - Awlad Liton

5
首先,"value"不是
元素的属性。
但你仍然可以这样使用:
var value = $('div').attr('value')

要获取ID属性,然后使用它,您可以按如下方式获取其值:
$('#' + value).attr('id');

您可以将其用作变量,然后做任何您想做的事情!

2
您可以使用 '属性以... 开头' 选择器,然后再使用 this.id
$('div[id^="tag"]').on('click', function() {  
    alert(this.id); // Get the ID
    alert($(this).attr('value')); // Get the value attribute
});

jsFiddle演示

但是请注意,value不是<div>元素的有效属性。因此,最好使用data-value,或者改用<input>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接