如何访问具有ID的活动元素的值(.val())的元素?
<dt>KEY</dt>
<dd id="KEY">Bla Bla Value</dd>
<dt>KEY2</dt>
<dd id="KEY2">Bla Bla Value</dd>
假设在先前的情况下,一旦针对具有值KEY的DT触发.click动作,我需要对ID为相同Key的DD执行动作(与活动元素的值相同)。
更新 有不同的解决方案已接受的一个不适用于所有浏览器,请在下面查看Irvin提供的解决方案以及他对使用数据密钥而不是ID进行修改的修改
答案 0 :(得分:2)
您可以使用attribute equal selector
并检查ID:
选择具有指定属性的元素 完全等于某个值。
您可以设置自定义属性(例如data-key
),而不是获取元素的文本,并将其用作选择器上的过滤器。
代码:
$("body").on("click", "#main-container dt", function () {
$(this).siblings("dd[id='"+$(this).data("key")+"']").toggle();
});
演示:http://jsfiddle.net/EFb4X/5/
第一个解决方案是很好的过滤自定义属性,因为您要过滤元素ID而不是属性选择器,您可以使用直接ID选择器,如:
$("body").on("click", "#main-container dt", function () {
$('#'+$(this).data("key")).toggle();
});
答案 1 :(得分:2)
这样可行:
$("dt").click(function() {
// Change font color to red
$("dd#" + $(this).html()).css({'color' : 'red'});
});
答案 2 :(得分:1)
这样的事情:
$('dt').on('click', function(e) {
var dd = $('#' + this.innerText);
// do something with dd
});
答案 3 :(得分:1)
试试这个,
$(document).on('click', 'dt', function() {
var clicked_ele = $(this).text();
$('dd[id=' + clicked_ele +']').trigger('click'); //performing click action on the dd with same key val as id
});