下面是一个示例结构,我正试图从中获取自定义属性的特定值
<div id="123"></div>
<div id="456"></div>
<div context="james"></div>
以下是我尝试获取的方式,但始终返回false。
if ( $('div').attr('context') == 'james' ) {
alert("yes");
} else {
alert("no");
}
答案 0 :(得分:3)
对$('div').attr('context')
的调用只会获取DOM中找到的第一个div
并检查其值。由于它没有该属性,因此您得到false
。相反,您将需要遍历所有div并检查每个div。例如:
var found = false;
$('div').each(function( ) {
if($(this).attr('context') === 'james') found = true;
});
if(found) alert("yes");
else alert("no")
您也可以使用.filter
:
if( $('div').filter(function(){ return $(this).attr('context') === 'james' }).length )
alert("yes");
else
alert("no");
注意:如果使用data-context="james"
,则应使用.data()
方法,而不是.attr()
。
答案 1 :(得分:0)
只需让jQuery为您过滤即可。另外,可以使用普通的旧式javascript轻松完成此操作:
cd android; ./gradlew assembleRelease
// Select by attribute
var theDiv = $("div[context='james']");
// If we have something here...
if(theDiv.length){
console.log(theDiv.text() );
} else {
console.log("Nope, not found.");
}
// We can use this same selector with plain javascript...
let theSameDiv = document.querySelector("div[context='james']");
// In this event, however, we access the text differently.
if(theSameDiv){
console.log("Found without jQuery!", theSameDiv.textContent);
} else {
console.log("Rats...");
}