2014-12-01 3 views
1

이 게시판처럼 보일 수 있지만 커뮤니티에서 만든 코드를 가져올 수 없다는 것을 알고 있습니다. here.
모든 클래스의 SVG 요소로 배열 만들기

내가하려는 것은 내가 클릭하고있는 요소에 나열된 모든 클래스의 배열을 만드는 것입니다.
내가 클릭하는 요소는 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) 

감사 :

배열 내가 얻을 수있다.

답변

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") ; 
     }); 
    }); 
}); 

참고을 그은 자바 스크립트의 키워드이므로 따옴표로 묶어야합니다. 당신이 배열을해야하는 경우
, 당신은 당신이 alot을 감사 wauw $(this).attr('class').split(/\s+/);

TEST

+0

아를 할 수있다! 완벽하게 작동했는데 수업에 대해 몰랐습니다. 네가 설명해줬으면 좋겠어. – uruloke

+0

SVG 요소는 일반 요소와 마찬가지로 클래스 속성을 가질 수 있지만 DOM에서 다른 방식으로 노출되었다는 것은 사실입니다 (역사적인 실수). 나는 해결책이 여기 있다고 생각한다. 가장 최근의 브라우저에 존재하는 대안은 새로운 API ['Element.classList'] (https://developer.mozilla.org/en-US/docs/Web/API/Element. classList), 그것은 svg와 html 요소 모두에서 동일하게 작동합니다. –

관련 문제