[英]How to find if a clicked item has a certain data attribute value
我有这两个单选按钮
<input id="119715_0" type="radio" name="119715" value="76952" data-logic="yes" required /><label for="119715_0">Yes</label>
<input id="119715_1" type="radio" name="119715" value="76953" data-logic="no" required /><label for="119715_1">No</label>
我需要首先找出它们是否具有数据逻辑属性,然后才具有该值,以便将if语句放在一起,以了解该值是否为yes或是否为no。 我不能使用id,因为页面上可能有多个具有数据逻辑的按钮,所以我试图使用$(this),使其在被单击的任何按钮上运行。
我发现此链接如何使用jQuery选择在数据属性数组中具有特定值的元素,但它仅针对标记的类型。 我不知道如何与$(this)一起使用
我目前一直在和
function checkLogic() {
if ($(this).attr("data-logic")) {
alert("haslogic");
}
}
$("input").click(checkLogic);
但没有成功
使用.data
函数进行检查: http : //jsfiddle.net/byzLG/1/
$('input[name="119715"]').click(function() {
if ($(this).data('logic') !== undefined) {
alert('Has data-logic');
} else {
alert('Does not have data-logic');
}
});
用例中, if ($(this).data('logic'))
在您的原始代码中不起作用,则值为0。我确定值为false也会破坏它。
您可以使用普通的JavaScript:
if(element.getAttribute("data-logic") === null) {
// Doesn't have attribute
}
JSFiddle 。
$("input").click(function() {
var dataAttr = $(this).attr("data-logic");
if (dataAttr == "yes") {
var value = $(this).attr("value");
alert('Has logic ' + value);
}
});
您应该检查类型的值。 Javascript类型确实是错误的,因此您需要格外小心:
if (typeof($(this).attr('data-type')) === "undefined")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.