2014-01-11 43 views
1
<div id="tag<%=count++%>" value="val1"> 
<div id="tag<%=count++%>" value="val2"> 
<div id="tag<%=count++%>" value="val3"> 

jQuery中的Onclick事件需要获取div的值。创建的div的确切数字是动态的jquery从动态创建的div获取id值

+1

如果你点击'div',该'id'将始终为'this.id'访问。 – moonwave99

回答

9

您应该改用输入的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); 
}); 
}); 

Live demo

采用div:

试试这个:

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

demo

+0

@ user3035379:是否有效? –

+0

是的。有效。节省了我很多时间。感谢 – Sivadinesh

+0

@ user3035379:如果你有你的问题的解决方案,你应该接受一个答案:) –

0

您可以使用“Attribute starts with”选择,然后使用this.id

$('div[id^="tag"]').on('click', function() { 
    alert(this.id); // Get the ID 
    alert($(this).attr('value')); // Get the value attribute 
}); 

jsFiddle Demo

你应该注意的,就是value不是<div>一个有效的属性元素。因此,使用data-value或使用<input>代替可能会更好。

+0

工程就像一阵微风.. – Sivadinesh

+0

@ user3035379您可能想接受答案。 – BenM

4

首先,值不是div的属性。

但你仍然可以使用这个:

var value = $('div').attr('value') 

获得ID属性,并使用,即可获得价值为:

$('#' + value).attr('id'); 

你可以使用它作为一个变量,然后做什么以至于!