2012-12-07 3 views
0

내가 여기 Replacing a part of text inside a td하위 문자열 [0]

$('.my-table tr').each(function() { 

    var contact = $(this).find('td').eq(1)[0].childNodes[0].nodeValue; 
    $(this).find('td').eq(1).contents()[0].data = contact.substring(0,10); 
}); 

논의 TD에서 텍스트를 추출하려고하지만 (0,10) contact.substring있어 .NodeValue 이렇게; 작동하지 않는 것 같아 비어 있습니다.

어떻게 해결할 수 있습니까?

+2

1/당신은 "접촉"에 뭔가가 확신? 2/find.eq.contents.data가 제대로 작동합니까? – njzk2

+1

관련 마크 업을 보지 않으면 대답 할 수 없습니다. 추측하기에 잘못 될 수있는 곳이 너무 많습니다. – jbabey

+0

마지막 행의 데이터 속성은 정확히 무엇입니까? 그리고 왜 다음 문장에서 네이티브 요소를 얻을 때 eq()를 사용하고 있습니까? – adeneo

답변

1

이 시도 :

$('.my-table tr').each(function() { 

    var contact = $.trim($(this).find('td').eq(1)[0].childNodes[0].nodeValue); 
    if(contact != '') 
    { 
     var value = contact.substring(0,10); 
     alert(value); 
     $(this).find('td').eq(1).contents()[0].data = contact.substring(0,10); 
    } 
}); 

당신이 점점 경고 값이 무엇입니까? 또는 당신은 어떤 경고라도 얻고 있냐??

+0

팔레시 내가 console.log (연락처) 할 때 연락을하지만 경보 (값) 아직도 나를 반환 빈 .. – user1184100

+0

Business34 소유자 - 관리자 – user1184100

+0

텍스트 시작 부분에 공백이 있습니다. – user1184100

0

먼저 무엇이 필요합니까? 나는 당신을 console.log contact 가치 않았다?

접촉이 다음이 같은 시도 확인하는 경우 :

var contact = new String($(this).find('td').eq(1)[0].childNodes[0].nodeValue); 
+0

그게 도움이되지 않습니다 – Bergi

+0

응답 jevgeni .. 주셔서 감사합니다하지만 작동하지 않습니다 – user1184100

1

일반 DOM 노드를 얻으려면 .eq(1)[0]을 사용하지 말고 .get(0) 만 사용하십시오. 또한 동일한 텍스트 노드를 얻는 두 가지 다른 방법을 사용하지 말고 하나만 변수에 저장하십시오. 이제 무슨 일이 있었는지 확인하자

$('.my-table tr').each(function() { 

    var cell = $('td', this); 
    if (!cell.length) 
     return alert("Could not find a table cell"); 

    var el = cell.get(0); 
    if (!el) alert("Could not get first element"); // Won't happen if length was >0 

    if (!el.childNodes.length) 
     return alert("Cell is empty!"); 

    var text = el.childNodes[0]; 
    if (cell.contents()[0] != text) alert("different firstChilds???"); // Won't happen 
    if (text.nodeType != 3) 
     return alert("the first child node is not a text node!"); 

    var contact = text.nodeValue; 
    if (text.data != contact) alert("different contents???"); // Won't happen 
    if (typeof contact != "string") alert("content is no string"); // Won't happen 

    var newcontact = contact.substring(0,10); 
    alert('"'+contact+'" was changed to "'+newcontact+'"'); 
    text.data = newcontact; 
}); 

(Demo at jsfiddle.net)