를 사용하여 여러 클래스 선택 어떻게 내가 클래스 even
또는 클래스 odd
이있는 모든 행을 선택하고 싶습니다. 어떤 도움도 감사합니다, 감사합니다내가 테이블 요소에서 노코 기리 루비
report.css("table.data tr[class~=odd even]").each{|line| parse_line_item(line)}
하지만 그것은 오류가 발생했습니다 :
나는 JQuery와 구문을 시도했다.를 사용하여 여러 클래스 선택 어떻게 내가 클래스 even
또는 클래스 odd
이있는 모든 행을 선택하고 싶습니다. 어떤 도움도 감사합니다, 감사합니다내가 테이블 요소에서 노코 기리 루비
report.css("table.data tr[class~=odd even]").each{|line| parse_line_item(line)}
하지만 그것은 오류가 발생했습니다 :
나는 JQuery와 구문을 시도했다.개 사용 선택기 : report.css("table.data tr.odd, table.data tr.even")
값 클래스 목록은 공백 일치하는 CSS 속성 선택기 점검 작업자의 ~=
. 예를 들어 tr[class~=odd]
은 <tr class="odd">
및 <tr class="odd ball">
과 일치합니다. 그러나 class
특성의 경우에는 더 나은 선택자는 단순히 tr.odd
입니다. 당신이 가치있는 공간이 ~=
연산자를 사용하는 경우
(tr[class~="odd even"]
같이 선택기 아무것도 일치하지 않습니다
CSS의 선택을 당신도 구문 적으로 유효한 선택이 없다가 있습니다.
[class~=odd even]
가 공백을 포함
값은 항상 인용해야하므로이 셀렉터를 작성하는 올바른 방법은 다음과 같습니다
[class~="odd even"]
그러나,이 선택은 실제로 지금까지 아무것도 일치하지 않을 수 있습니다 다음 [attr~=val]
속성 값 선택 일치 ...
, 이것은 그들도 스스로를 공백 포함 할 수 없음을 의미합니다. 하지만이 (
"odd even"
)를 찾고 있습니다
말씀이 그러므로 그 어느 것도 일치하지 않을 수이 공백을 포함한다. 아마도 당신을 위해 무엇을 찾고있는 것은 OR
콤비이지만, 그것은 존재하지 않습니다. 따라서, 당신이 찾고있는 것은 CSS 셀렉터로 표현 될 수 없습니다.
사실 사실이 아닙니다. 은 CSS 선택기로 표현할 수 있습니다.
table.data tr.odd, table.data tr.even
이 기억 : CSS는 설정을 기반으로, 때문에 순서는 중요하지 않습니다 당신은 단순히 선택 그룹을 사용할 수 있습니다, 당신은 OR
콤비를 사용하는 것과 같습니다 성냥의 조합을 설정 제공한다.귀하의 경우에는, 순서 는 CSS 정말 작업에 대한 잘못된 도구입니다 즉, 사항을 수행 report.xpath('//table[@class="data"]//tr[@class="odd" or @class="even"')
난 그냥이 같은 것을 사용하지 않는 이유를 잘 모르겠습니다 것을 인정해야하지만 : 결국
report.css('table.data tr')
, 모든 행을 선택하는 등의 모든 홀수 및 짝수 행 같은 선택되지? 내 말은, 너 안에 또 뭐가 들었어, 불합리한 행이야?
'tr'은 예를 들어 헤더 일 수 있습니다. –
그러나이 방법은 순차적으로 사용하는 것이 아니라 '1,3,5,7,9,2,4,6,8'으로 제공합니다. 순차적으로 얻을 수있는 방법이 있습니까? –
질서가 중요하다면'table.data tr [class]'를 선택하여'class' 속성으로 모든'tr'을 찾은 다음 Ruby에서 정확한'class' 값을 확인하십시오. 간결하지는 않지만 CSS 선택기보다 훨씬 유연합니다. 그것에 –
아픈 모양, 고마워! –