[英]How to utilize jQuery to detect a change on a select tag with a dynamically-generated ID and alter options for select
[英]how to select id which is dynamically change in jquery?
这是我的 html:
<?php echo ($row['status'] == 1)? ?> <span id='slide_".$row['id']."' name="slid_id" class='label label-danger'>Inactive</span> <?php : ?> <span id='slide_".$row['id']."' name="slid_id" class='label label-success'>Active</span> <?php ; ?>
这是我的 jquery 代码:
$(document).ready(function() { $("span").click(function() { var id = $(":input[name=slide_id]").val(); alert(id); }); });
我什么都没得到,我想得到
ID 及其动态生成的值
span 元素,然后执行一些操作,例如单击我想将状态从活动更改为非活动,反之亦然。
提前致谢。
var id = $(":input[name=slide_id]").attr('id');
应该做的工作。 .val()
只返回输入元素的当前值。
问题中缺少您的 HTML,但消除 jQuery 选择器中的冒号可能会在选择输入字段时$("input[name=slide_id]").val()
- 即$("input[name=slide_id]").val()
。
如果您想获取 span 元素的 ID 属性,这将起作用:
$('span_selector').attr('id');
好吧,我终于找到了解决这个问题的方法。 我只是分享这个,如果有一天有人遇到同样的问题,那么这可能会有所帮助。
html代码:
<tr class="tr">
<td class="td">
<div id="status">
<?php
echo ($row['status'] == 1)?
"<span id='".$row['id']."' class='label label-danger'>Inactive</span>":
"<span id='".$row['id']."' class='label label-success'>Active</span>";
?>
</div>
</td>
</tr>
我的jQuery代码:
$(document).ready(function()
{
$("#status > span") .click(function()
{
var id = $(this).attr('id');
var tempelement = $(this);
var texts = $(this).closest(".tr").find("#texts").val();
var author = $(this).closest(".tr").find("#author").val();
var status = $(this).text();
$.ajax({
type: 'POST',
url: 'manage_feedback.php',
data: {id:id, texts:texts, author:author, status:status},
success: function(data)
{
if (data == "Active")
{
$(tempelement).removeClass("label label-danger");
$(tempelement).addClass("label label-success");
$(tempelement).html(data);
alert('status changed');
}
else if (data == "Inactive")
{
$(tempelement).removeClass("label label-success");
$(tempelement).addClass("label label-danger");
$(tempelement).html(data);
alert('status changed');
}
else
{
alert(data);
}
}
});
});
php脚本
//ajax status changer code if (isset($_POST['id']) && isset($_POST['texts']) && isset($_POST['status']) && isset($_POST['author'])) { $id = $_POST['id']; $texts = trim($_POST['texts']); $author = trim($_POST['author']); $status = $_POST['status']; $qry = "SELECT count(id) as count FROM tbl_testimonials WHERE texts = '".$texts."' AND author = '".$author."' AND id != ".$id." "; $sql = mysql_query($qry); $data = mysql_fetch_assoc($sql); if ($data['count'] == 0) { if($status == 'Inactive') { $qry = "UPDATE tbl_testimonials SET status = 0 WHERE id = ".$id." " ; $sql = mysql_query($qry); if($sql == 1) { echo 'Active'; exit; } } elseif ($status == 'Active') { $qry = "UPDATE tbl_testimonials SET status = 1 WHERE id = ".$id." " ; $sql = mysql_query($qry); if($sql == 1) { echo 'Inactive'; exit; } } } else { echo "name already taken"; exit; } }
希望它会帮助某人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.