jQuery 仅点击元素数据
jQuery only get clicked on elements data
希望有人能帮我解决这个问题
我一直在努力创建按钮,单击它会将数据添加到表单中
被送走。
如此处所示:
<div>
<li id="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li id="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
<form>
<input type="hidden" name="title" value="">
<table width="100%" border="0">
<tbody>
<tr>
<td align="left">
<label>Artist: </label>
</td>
................
脚本代码:
$( "#song-button" ).click(function() {
var artist = $(".artist").text();
var song = $("h3").text();
$("#artist-field").val(artist);
$("#song-field").val(song);
});
是否只能获取点击的 li 表单数据?
id
对于每个元素应该是唯一的。使用 song-button
class
而不是 id
如下所示。
<div>
<li class="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li class="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
使用find
获取点击元素下的数据。
$( ".song-button" ).click(function() {
var artist = $(this).find(".artist").text();
var song = $(this).find("h3").text();
$("#artist-field").val(artist);
$("#song-field").val(song);
});
您必须使用 class 更改您的选择器,id 是唯一的,所以我稍微更改了您的代码 ...
<div>
<li class="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li class="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
<form>
<input type="hidden" name="title" value="">
<table width="100%" border="0">
<tbody>
<tr>
<td align="left">
<label>Artist: </label>
</td>
</tr>
</tbody>
</table>
</form>
脚本必须这样改
$( ".song-button" ).click(function() {
var artist = $(this).find('.artist').text();
var song = $(this).find('.song').text();
$("tbody tr").append('<td align="left"><label>Artist:'+artist+' </label></td>');
});
ID 必须是唯一的。所以我将 'song-button' 编辑为 class
$(document).ready(function () {
$(".song-button").click(function () {
var artist = $(this).find('div.artist').text()
var song = $(this).find('h3.song').text()
alert(artist)
alert(song)
});
});
</script>
</head>
<body>
song-button
<div>
<li class="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li class="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
</body>
</html>
希望有人能帮我解决这个问题
我一直在努力创建按钮,单击它会将数据添加到表单中 被送走。
如此处所示:
<div>
<li id="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li id="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
<form>
<input type="hidden" name="title" value="">
<table width="100%" border="0">
<tbody>
<tr>
<td align="left">
<label>Artist: </label>
</td>
................
脚本代码:
$( "#song-button" ).click(function() {
var artist = $(".artist").text();
var song = $("h3").text();
$("#artist-field").val(artist);
$("#song-field").val(song);
});
是否只能获取点击的 li 表单数据?
id
对于每个元素应该是唯一的。使用 song-button
class
而不是 id
如下所示。
<div>
<li class="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li class="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
使用find
获取点击元素下的数据。
$( ".song-button" ).click(function() {
var artist = $(this).find(".artist").text();
var song = $(this).find("h3").text();
$("#artist-field").val(artist);
$("#song-field").val(song);
});
您必须使用 class 更改您的选择器,id 是唯一的,所以我稍微更改了您的代码 ...
<div>
<li class="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li class="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
<form>
<input type="hidden" name="title" value="">
<table width="100%" border="0">
<tbody>
<tr>
<td align="left">
<label>Artist: </label>
</td>
</tr>
</tbody>
</table>
</form>
脚本必须这样改
$( ".song-button" ).click(function() {
var artist = $(this).find('.artist').text();
var song = $(this).find('.song').text();
$("tbody tr").append('<td align="left"><label>Artist:'+artist+' </label></td>');
});
ID 必须是唯一的。所以我将 'song-button' 编辑为 class
$(document).ready(function () {
$(".song-button").click(function () {
var artist = $(this).find('div.artist').text()
var song = $(this).find('h3.song').text()
alert(artist)
alert(song)
});
});
</script>
</head>
<body>
song-button
<div>
<li class="song-button">
<h3 class="song">Song #1</h3>
<div class="artist">Artist #1</div>
</li>
<li class="song-button">
<h3 class="song">Song #2</h3>
<div class="artist">Artist #2</div>
</li>
</div>
</body>
</html>