2011-09-26 23 views
8

Tôi chỉ cần một hàm đơn giản sẽ tìm kiếm url hiện tại cho một chuỗi (tức là "tự nhiên") và sau đó sẽ thêm một lớp vào một đối tượng. Tôi tiếp tục tìm cách để tìm kiếm truy vấn, nhưng tôi muốn tìm kiếm toàn bộ url. Nếu có thể, không có jQuery. Nếu không, jQuery sẽ hoạt động.javascript đơn giản: tìm kiếm url cho chuỗi, làm điều gì đó

Trả lời

10

Bạn có thể lấy URL với window.location.href, và tìm kiếm nó tuy nhiên bạn muốn:

var location = window.location.href; 
if(location.indexOf("whatever") > -1) { 
    //Do stuff 
} 

window.location trả về một đối tượng Location, trong đó có một tài sản href chứa toàn bộ URL của trang.

3

Phương pháp cơ bản nhất là một cái gì đó như thế này:

window.location.href.indexOf('nature') 

Điều đó sẽ trở -1 nếu chuỗi không được tìm thấy. Nếu không, nó sẽ trả về chỉ mục của chuỗi bên trong chuỗi URL.

1

Sử dụng regexes, như một sự thay thế:

if (window.location.toString().match(/nature/)) { 
    yourobj.className = 'newclass'; 
} 
0

Nếu bạn đang tìm kiếm một giá trị trong QueryString, bạn có thể thử này:

var searchIndex = window.location.search.indexOf("nature"); 

Nếu không, bạn có thể làm điều này:

var searchIndex = window.location.href.indexOf("nature"); 

Bạn cũng có thể thực hiện việc này:

var searchIndex = window.location.href.search("/nature/"); 

Để kiểm tra xem từ đã được tìm thấy, bạn có thể làm điều này:

if (searchIndex > -1) 
    //logic here 
0

Tôi nghĩ cái này nên cung cấp cho bạn một điểm khởi đầu tốt. JSFiddle có sẵn tại đây.

<div id="test">Some text</div> 

.red 
{ 
    background-color: #FF0000; 
} 

function handler(url, textToMatch, objectToChange, classToAssign) 
{ 
    if (url.search(textToMatch) != -1) 
    { 
     objectToChange.className = classToAssign; 
    } 
} 

var url = 'http://www.some-place.com&nature'; //window.location.href in your case 
var div = document.getElementById('test'); 

handler(url, 'nature', div, 'red'); 
0

Các băm trong URL gây ra các vấn đề đối với tôi, vì vậy thay vì tôi đã sử dụng một "?".

Như một ví dụ cho phép nói rằng tôi có URL: http://example.com?someString

Trước tiên tôi lấy URL: "?"

var activeURL = window.location.href; 

Sau đó, tôi mất tất cả mọi thứ từ các chỉ số + 1 (bởi vì tôi không quan tâm để bao gồm "?") Trở đi.

var activeItem = aactiveURL.substring(activeUrl.indexOf('?') + 1, activeURL.length); 

activeItem sẽ là "someString"

Các vấn đề liên quan