2010-01-08 3 views
2

Мне нужно иметь возможность выбрать элемент с определенным контентом (innerHTML).Как выбрать элемент на основе его содержимого?

например. У меня есть несколько якорей, каждый из которых имеет номер в качестве текста. Как я могу выбрать якорь с «1» в качестве текста?

Я попытался это

$('a[innerHTML="1"]') 

это, кажется, работает в IE, но не далее или хром!

ответ

0

Спасибо за ответы. Я придумал решение:

$('.pages a').filter(function() { return $(this).text() == 1; }) 

С якорей Я ищу все в общем DIV я сужать вниз через это, а затем запустить фильтр клиента функцию в найти точный элемент.

+0

Отлично сделано. Рад, что вы нашли более легкое решение. – ryanulit

1

Попробуйте $ ("а: содержит ('1')")

EDIT => это будет оповещать только текст анкера с 1 или ноль, если ничего не найдено.

alert(FindLink($("a:contains('1')"), "1")); 

function FindLink(element, textToFind) { 
    var result = null; 
    element.each(function() { 
     if ($(this).text() === textToFind) 
     { 
      result = $(this).text(); 
      // you can change any attributes or css using $(this).css, etc 
      // once the if statement is satisfied 
     } 
    }); 
    return result; 
} 
+0

Ссылка на документ также находится в другом ответе, но здесь: http://docs.jquery.com/Selectors/contains#text – cjstehno

+0

Спасибо, но мне нужно, чтобы текст был точно не просто содержит. например если у меня есть и привязка с 1 и 10 $ ("a: contains ('1')") вернет оба. Можно ли это сделать с помощью? – CeejeeB

+0

Я не думаю, что вы сможете это сделать с помощью. Возможно, вам нужно будет выполнить функцию, в которой вы передадите нужное вам значение, а затем проведите через результаты, а экспликация найдет ссылку, которая имеет значение. Я отредактирую свой ответ, чтобы сделать это. – ryanulit

Смежные вопросы