David Webb
David Webb

Reputation: 253

jQuery .search() throwing an error

I am trying to use jQuery and the .search() function to loop through all of my anchor tags on a page and if it has a certain url, add a data-reveal attribute for a Foundation 5 modal. The code does what it is supposed to but it is throwing an error. This error is keeping scripts below it from being called. Any insight into this matter would be appreciated

When doing this I am getting an error that says : Uncaught TypeError: Cannot read property 'search' of undefined

Here is the script I am using:

<script>
  $(document).ready(function(){
    $('a').each(function(){
      var currLink = $(this).attr('href').search(/oamedia.html/i);
      if (currLink != -1) {
        $(this).attr('data-reveal-id', 'videoModal')
        $(this).attr('href', '#');
      };
    });
  });
</script>

Upvotes: 1

Views: 55

Answers (1)

lonesomeday
lonesomeday

Reputation: 237855

The problem is that attr returns undefined if the attribute is not present. You need an empty string '', rather than undefined. Fortunately, jQuery's prop function does exactly that for the href property:

var currLink = $(this).prop('href').search(/oamedia.html/i);

Upvotes: 2

Related Questions