问题
I have asp.net repeater on a page. If each item being repeated is wrapped in a label like so:
<label class="ItemName">value</label>
If this label contains the text '35' I want to display some text next to it. How can i do this using jquery???
jQuery(document).ready(function () {
if ($('.ItemName').val().indexOf("35")) {
$(this).val() = $(this).val() + "some text";
}
});
回答1:
- The
this
in the.ready
function should refer to thedocument
. - To get the text content, use
.text()
instead of.val()
. - To update some value, use
$obj.val(blah);
, not$obj.val() = blah;
. (This is actually a limitation of Javascript.) - There is a :contains() selector to filter elements containing some text.
- To append some text (or HTML), there is already an .append() method (Thanks @J-P for reminding this.)
You may want this instead:
$('.ItemName:contains(35)').append("some text");
回答2:
.text()
should work:
var item = $('.ItemName');
if ( item.text().indexOf("35") > -1 ) {
item.after("some text");
}
回答3:
indexOf
returns -1 if not found, or the index. Do this:
if ($('.ItemName').val().indexOf("35") >= 0) {
回答4:
this you mean?
jQuery(document).ready(function () {
if ($('.ItemName').text().indexOf("35")) {
$(this).text($(this).text() + "some text");
}
});
来源:https://stackoverflow.com/questions/3677913/jquery-if-label-contains-this-do-this