thormayer
thormayer

Reputation: 1070

contains is object has no method?

I'm trying to find whether there is some character in my string in JS

Like that :

$('.upld_btn').bind("click", function () {

    changeApiFormat($('#embbed').val());

});

if ($('#embbed.contains("?vid=")')) {
....

....
}

I've got an error in my google chrome console :

Object XXXX has no method 'contains'

How come?!

Upvotes: 2

Views: 4762

Answers (3)

Cat
Cat

Reputation: 67522

I assume #embbed is an input value of some kind (because of your call to .val() above). So, you would want to pull its value here, as well, and use indexOf (-1 indicates not found):

if ($("#embbed").val().indexOf('?vid=') != -1) {

Here is a jsFiddle illustrating proof-of-concept. Enter "Hi", or "aHia", or anything like that (case-sensitive) into the box and click the link, and you will get a success popup. Otherwise you will get a failure popup.

Code used:

​$(document).ready(function() {
    $(".clicky").click(function() {
        if ($("#input").val().indexOf('Hi') != -1) {
            alert("Contains 'Hi'!");​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
        } else {
            alert("No luck!");
        }
        return false;
    ​}​);
});​

Upvotes: 6

Nope
Nope

Reputation: 22339

To use the contains() selector your syntax is not correct, assuming that is what you are trying to achieve:

if ($('#embbed:contains("?vid=")').length) {
    ....
}

Upvotes: 3

Oriol
Oriol

Reputation: 288500

See http://api.jquery.com/contains-selector/

It's :contains instead of .contains:

$('#embbed:contains("?vid=")')

Upvotes: 0

Related Questions