我一直试图从我在php网页上显示的一行显示中读取特定值。我的想法是尝试获取行中某个单元格的当前值,但是,我尝试使用getElementsByTagName不起作用,因为我之后无法访问该值(只有HTMLCollection对象)。我正在使用最接近的,但这只能起作用并获得起始行。
编辑:
似乎没有弹出任何东西。好吧,模态会弹出,但没有警报。
试过这个demo但是也没有用哈哈......
<td><button class='sellButton btn btn-primary' data-target='#modalsell' id='sellStock'>Sell Stock</button></td>
<div id="modalsell" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Sell Stocks</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form role="form">
<div class="form-group">
<div class="input-group">
<label for="shares" class="input-group-addon glyphicon glyphicon-user">Amount of Shares:</label>
<input type="text" class="form-control" id="sharess" placeholder="Shares Selling...">
<label for="start" class="input-group-addon glyphicon glyphicon-user">Minimal Sell Price:</label>
<input type="text" class="form-control" id="starts" placeholder="(0 for No Limit)" value="0">
<label for="stop" class="input-group-addon glyphicon glyphicon-user">Max Sell Price:</label>
<input type="text" class="form-control" id="stops" placeholder="(0 for No Limit)" value="0">
</div> <!-- /.input-group -->
</div> <!-- /.form-group -->
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-toggle='modal' onclick="sellStock()">Place Sell</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
调用者中的undefined 元素
$(document).ready(function(){
$(".sellButton").on('click', function (e) {
alert('test 1');
$('#modalsell').modal('toggle', $(this));
});
$('#modalsell').on('show.bs.modal', function(button){
alert('test 2');
var $invoker = $(button.relatedTarget);
alert($($invoker).id);
});
});
答案 0 :(得分:1)
Jquery解决方案
第一种情况:
如果您想要整行表格,那么您必须使用一些唯一的类或Id来识别您的表格。
假设您的表格唯一的类名是&#34;表格响应&#34;然后你可以使用
获取所有表格 $(&#34; exec
它会给你一排tbody。
第二种情况:
如果您想获得当前点击按钮(在本例中为sellStock)按钮,那么您可以在按钮单击时使用父母的上下文。
示例:
来自 @Touheed Khan 回答: 如果要在循环中动态生成多个元素,请不要使用id。 你可以使用class,否则它只会获得第一个元素。
如果您的按钮类名称是rowButton,那么您可以使用它 如下所示。
.table-responsive").find('tbody tr');
感谢@Touheed Khan。
答案 1 :(得分:1)
问题:
您的代码的主要问题是您在循环中使用相同的ID(id='sellStock'
)。这就是你点击任何按钮时获得相同tr的原因。
注意: id
属性在页面内应该是唯一的。
解决方案: 尝试使用此代码获取单击按钮的父tr。
<th><button onclick="myFunction(this)">Sell Stock</button></th>
你的处理函数:
function myFunction(elem) {
var x = elem.parentElement.parentElement; // x is the parent row
//rest of your code goes here
}
替代方案:
您也可以使用 class
选择器代替 id
,这是一个更好的选择。
根据评论请求进行更新:
你可以通过这样做来获取模态的调用者元素。 #your-modal
是您的模态选择器,您可以根据自己的要求使用class
或id
。
$('#your-modal').on('show.bs.modal', function (e) {
var $invoker = $(e.relatedTarget);
//rest of code
});
代替:
alert($($invoker).id);
使用此:
alert($($invoker).attr('id'));
快乐编码!
答案 2 :(得分:0)
使用class和TD
"<tr>
<td>". $arrayval"</td>
<td class='need'>"."(Need)"."</td>
<td>".$arrayval."</td>
<td>".$arrayval."</td>
<td>".$arrayval."</td>
<td><button class='sellStock btn btn-primary' data-toggle='modal' data-target='#modal1'>Sell Stock</button></td>
</tr>";
始终使用jQuery
$(".table").on("click",".sellStock",function() {
var cellContent = $(this).closest("tr").find(".need").text();
});
或
$(".table").on("click",".sellStock",function() {
var row = $(this).closest("tr");
// handle row here
});