링크의 이름 만 어떻게 가져올 수 있습니까? 예 : "test.php"에서 "test"하시겠습니까?파일 확장자가없는 링크의 이름 만 얻으려면 어떻게해야합니까?
var linkname= this.href.substring(2);
substring()
정말 어떻게 작동하는지 모르겠어요 :
감사합니다.
업데이트 : 답변 먼저
$(".nav").delegate("a", "click",function() {
var linkname = this.href.substr(0, (this.href.length - '.php'.length));
$("#claim"+linkname).fadeIn('slow').siblings().hide();
});
, 감사합니다. 하지만 뭔가 잘못 했습니까? 여전히 작동하지 않습니다.
아마도 내 잘못 : 처음에는 "#"을 제거해야합니다. 세
내가 일하고 있어요 이것을 전체 코드
UPDATE :
$(document).ready(function(){
$("#claimone, #claimtwo, #claimthree").hide();
$("#claimone").show();
$(".nav").delegate("a", "click",function() {
var linkname = this.href.substr(0, (this.href.length - '.php'.length));
$("#claim"+linkname).fadeIn('slow').siblings().hide();
});
});
두 번째 함수는 "#의 link.php"를 생성합니다. 그래서 그것이 충돌하지 않는지 나는 모른다. 모든 주장은 index.php에 있습니다. 새로로드 된 모든 콘텐트마다 콘텐트를 변경하기를 원합니다. 링크는 href = "one.php", href = "two.php", href = "three.php"와 같습니다.
$(function() {
var newHash = "",
$mainContent = $("#maincontent-wrapper"),
$pageWrap = $("#wrapper"),
baseHeight = 0,
$el;
$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();
$(".nav").delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function(){
newHash = window.location.hash.substring(1);
if (newHash) {
$mainContent
.find(".maincontent")
.fadeOut(200, function() {
$mainContent.hide().load(newHash + " .maincontent", function() {
$mainContent.fadeIn(200, function() {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
});
});
$(".nav a").removeClass("active");
$(".nav a[href="+newHash+"]").addClass("active");
});
});
};
});
$(window).trigger('hashchange');
});
이것은 실제 해결책은 아니지만 작동합니다. 나는 각 href에 .link 클래스와 각 클레임의 이름을 부여했다.
$(".link").click(function() {
var divname= this.name;
$("#claim"+divname).fadeIn(200).siblings().hide();
});
하지만 그건 내가 원하는 바가 아닙니다. 코드가 너무 많습니다. 그리고 이제로드 된 콘텐츠 페이드 인과 동기화되지 않습니다. 두 페이딩을 어떻게 든 결합하는 것이 좋을지도 모릅니다.
최종 솔루션
은 멀리 실제로 작업을해야 내가 함수에 바인딩 할이 관리 해결의 첫 번째 아이디어를 형성 :
$claim
.find("#claim")
.fadeOut(200, function() {
$claim.show().load(newHash + " #claim", function() {
$claim.hide().fadeIn(200);
});
});
모두에게 감사를. 옆에있는 서브 링에 대해 조금 더 배웠습니다!
이름의 의미. "끝나지 않고"의미 이름 attr 또는 텍스트입니다. 묻고있는 예제를 제공합니다. – Gowri
"test.php"에서 ".php"를 단순히 제거하고 싶습니다. 정확히 무엇이 호출되는지 모르겠습니다. – Melros
"작동하지 않음"을 정의하십시오. 당신이하려고하는 것이 명확하지 않습니다. 'this.href'는 "http://example.com/test.php"일 가능성이 높습니다. 따라서 "#claim"+ linkname'은 "#claimhttp : //example.com/test"가됩니다. 현대적인 브라우저에서'console.log (this.href)'와'console.log (linkname)'을 사용하여 무슨 일이 일어나고 있는지 알 수 있습니다. – six8