javascript - 如何使用 jQuery 在列表中选择正确的按钮?
问题描述
我有一个不同服务器的列表。因此,当单击“连接”按钮时,我想连接到该特定服务器。如何使用 jQuery 选择正确的按钮?先感谢您!
{% for server in servers%}
{% if server.credential.user == user %}
{% if server.credential.protocol == 'vnc' %}
<a>
<div class="p-l-20" id="server_details">
<h4>{{server.name}}</h4>
<h6>Hostname: {{server.hostname}}</h6>
<h6>IP Address: {{server.ip}}</h6>
<h6>Protocol: {{server.credential.protocol|upper}}</h6>
<h6>User: {{server.credential.user}}</h6>
<button type="button" >Connect</button>
</div>
</a>
{% endif %}
{% endif %}
{% endfor %}
解决方案
首先,删除父级<a>
,因为您不能有嵌套的可点击元素。其次,您正在创建许多id
无效的元素,因为它们在 DOM 中必须是唯一的。改为server_details
上课。
要实现您需要的内容,请向button
元素添加事件处理程序。从那里您可以遍历 DOM 以找到必要的服务器信息。在下面的示例中,我span
在 IP 地址周围添加了一个类,您可以将其作为目标来读取它text()
,但是对于您想要读取的任何其他详细信息,模式都是相同的:
$('button').on('click', function() {
var ip = $(this).closest('.server_details').find('.ip').text();
console.log(ip);
});
.server_details {
margin-bottom: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="p-l-20 server_details">
<h4>{{server.name1}}</h4>
<h6>Hostname: {{server.hostname1}}</h6>
<h6>IP Address: <span class="ip">{{server.ip1}}</span></h6>
<h6>Protocol: {{server.credential.protocol1|upper}}</h6>
<h6>User: {{server.credential.user1}}</h6>
<button type="button">Connect</button>
</div>
<div class="p-l-20 server_details">
<h4>{{server.name2}}</h4>
<h6>Hostname: {{server.hostname2}}</h6>
<h6>IP Address: <span class="ip">{{server.ip2}}</span></h6>
<h6>Protocol: {{server.credential.protocol2|upper}}</h6>
<h6>User: {{server.credential.user2}}</h6>
<button type="button">Connect</button>
</div>
推荐阅读
- android - 使用 Rails 或 Android 应用上传图片
- tfs - Azure DevOps 导出导入查询到不同的项目
- r - 忽略非整数的 R 数据抑制
- matlab - 显示所需帧数的静态图像序列MATLAB的问题
- reactjs - 浏览器重绘/重排
- driverless-ai - H20 无人驾驶 AI,无法加载自定义配方
- python - 在 Python 中传递 MySQL CREATE TABLE SELECT 查询会引发语法错误
- flutter - 计步器颤振包错误 MissingPluginException(未找到方法在通道 step_detection 上侦听的实现)
- r - “kernelUD 中的错误:至少需要 5 次重定位才能适应主范围”,但每组的重定位数超过 5
- sql-server - 从另一个容器 spring boot 连接到 docker 容器中的 mysql