我知道这可能看起来像一个转贴,但我无法让社区制作的代码here。
我要做的是创建我点击的元素中列出的所有类的数组。
我点击的元素是来自SVG对象的<g></g>
元素。
我想将类(在数组中)发布到模态和<g>
元素的ID。这是我的代码:
//reveal Modal when when clicking on an item box.
$(document).ready(function() {
$('.items').click(function() {
$.ajax({
type: "POST",
url: "/includes/functions/choose_item.php",
data: { id: this.id, class: this.className}
})
.done(function() {
$('#choose_item_modal').foundation('reveal', 'open', "/includes/functions/choose_item.php") ;
})
});
});
它将它发布到我的PHP脚本,并且ID可以工作,但是该类是在baseval和animval的数组中,我想要一个只包含baseval的所有值的数组。
这是我得到的数组:
Array ( [animVal] => items hero_item [baseVal] => items hero_item )
感谢您的帮助。
答案 0 :(得分:2)
SVG元素实际上没有类似常规元素的类,className
属性返回一个特殊对象,通常是SVGAnimatedString
看起来像
{animVal: "class class2", baseVal: "class class2"}
class
属性实际上只是一个有些奇怪的常规属性,所以你需要使用getAttribute('class')
,或者在jQuery attr()
中获取属性的值
$(document).ready(function() {
$('.items').click(function() {
$.ajax({
type : "POST",
url : "/includes/functions/choose_item.php",
data : {
id : this.id,
'class' : $(this).attr('class')
}
}).done(function() {
$('#choose_item_modal').foundation('reveal', 'open', "/includes/functions/choose_item.php") ;
});
});
});
请注意,class
是javascript中的关键字,因此应引用它
如果您需要数组,可以执行$(this).attr('class').split(/\s+/);