我正在尝试使用mootools获取li
的子元素的一些信息,基本上我的html看起来像这样,
<li><a href="/home" id="home" class="nav-link">Home</a></li>
我希望能够使用mootools获取标签的id,class和href,到目前为止我的javascript看起来与此类似,
$$('.rate').each(function(element,i){
element.addEvent('click', function(){
var myStyles = ['nostar', 'onestar', 'twostar', 'threestar', 'fourstar', 'fivestar', 'sixstar', 'sevenstar', 'eightstar', 'ninestar', 'tenstar'];
myStyles.each(function(myStyle){
if(element.getParent().hasClass(myStyle)){
element.getParent().removeClass(myStyle)
}
});
myStyles.each(function(myStyle, index){
if(index == element.id){
element.getParent().toggleClass(myStyle);
var req = new Request({
method:'post',
url: '/recipes/save',
data: {'rating' : element.id},
onRequest: function(){ alert('Request made. Please wait...');},
onComplete:function(response){ alert('Response:' + response);}
}).send();
alert('Clicked '+element.id);
alert(element.getChildren().get('href');
}
});
});
});
脚本中的最后一个警告是我对li(元素)及其href的孩子的尝试。
答案 0 :(得分:1)
您的此声明不正确if(index == element.id){ ...
,index
始终是一个数字,您需要将其替换为myStyle
。证明:http://jsfiddle.net/fJDZJ/
之后只需el.get('id')
,el.get('href')
和el.get('class')
;
或el.getElement('a').get('id');
如果你需要获得孩子A的身份证。
答案 1 :(得分:0)
所有这些属性本身都公开为:
<elem>.id
<elem>.href
<elem>.className
如果element
包含对<li>
DOM对象的引用,则可以将子<a>
和所有三个属性设为:
var anchor = $$("li").getFirst("a");
anchor.id
anchor.href
anchor.className
或者正如Oskar所说,如果您不想担心跨浏览器问题,更好的选择是使用Element / Elements中的get
方法来检索这些:
anchor.get('id')
anchor.get('href')
anchor.get('class')