关于这个问题,用以下示例来说明:
成都创新互联是一家从事企业网站建设、成都做网站、网站制作、成都外贸网站建设、行业门户网站建设、网页设计制作的专业网站制作公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点近千家。
div title="aaa"salgag/div
div title="bbb"ssfaf5345/div
div title="ccc"sspansf/spanaf/div
div title="ddd"ssfaf/div
如上四个div,你是想通过“ssfaf”只取得特定的第四个div,而不取得前面的div,对吧?
这个需求我理解的没错的话,那么这个jquery是没有提供现成的方法的,因为div内还可能有别的元素对吧,而通过$("#somediv").text()取到的是所有内部元素的文字,所以可能也因为这一点,jquery仅提供了:contains这个选择器。所以现有的办法还是自己写点代码来取对象,如下:
script type="text/javascript"
function getJqObjByText(content){
var ele;
$("div:contains('"+content+"')").each(function(){
//if($(this).text()==content){ //注:此处不能这样判断,会取得第三个div的。
if(this.innerHTML==content){
ele = this; //此处,如果希望直接返回jquery对象,那就给 $(this) 的值
return false; //加上这句,在找到第一个符合的元素时跳出$.each。
}
});
return ele;
}
alert("["+$(getJqObjByText("ssfaf")).attr("title")+"]");
/script
类似标签[属性='值']这种叫做属性选择器,即选中属性=值的标签,但是,DOM里面是没有text属性的,所以option[text='1']是非法的。
我写了一段代码做参考
var x = "";
$("#selectID option").each(function() {
if($(this).text() == "1") {
x = $(this).val();
}
})
另外,id那里是不需要加#的,也就是select id="selectID"就可以了,#本身就表示id选择器
在textarea元素中,双标签中的内容是textarea默认值,就和那个input中设置value的值一样。
但是对于这中网页上的输入元素,他们的值在手动改了之后就不是默认值了。
对于textarea元素,你用text()方法修改的只是html的值,也就是修改了它的默认值(可以在crome浏览器下用审查元素查看效果,是html修改了;而修改value就不会修改html)。
如果没有修改过的textarea,你用text()修改是能够看见效果的,因为现在显示的是默认值;
当你修改过后,就只能用val()方法去修改它的值了。
还有的默认值的区别是,在表单中有个元素
input
type="reset"
/
会重置表单内容,就会变成默认值。这个时候用text()就对textarea有用了
首先,html属性中有两个方法,一个有参,一个无参
1. 无参html():取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档,返回的是一个String
例子:
html页面代码:divpHello/p/div
jquery代码:$("div").html();
结果:Hello
2.有参html(val):设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。返回一个jquery对象
html页面代码:div/div
jquery代码:$("div").html("pNice to meet you/p");
结果:[ divp Nice to meet you/p/div ]
其次,text属性中有两个方法,一个有参,一个无参
1. 无参text():取得所有匹配元素的内容。结果是由所有匹配元素包含的文本内容组合起来的文本。返回的是一个String
例子:
html页面代码:pbHello/b fine/p
pThank you!/p
jquery代码:$("p").text();
结果:HellofineThankyou!
2.有参text(val):设置所有匹配元素的文本内容, 与 html() 类似, 但将编码 HTML (将 "" 和 "" 替换成相应的HTML实体).返回一个jquery对象
html页面代码:pTest Paragraph./p
jquery代码:$("p").text("bSome/b new text.");
结果:[ pbSome/b new text./p ]
最后,val()属性中也有两个方法,一个有参,一个无参。
1.无参val():获得第一个匹配元素的当前值。在 jQuery 1.2 中,可以返回任意元素的值了。包括select。如果多选,将返回一个数组,其包含所选的值。
返回的是一个String、 array
例子:
html页面代码 :
代码如下:
p/pbr/
select id="single"
optionSingle/option
optionSingle2/option
/select
select id="multiple" multiple="multiple"
option selected="selected"Multiple/option
optionMultiple2/option
option selected="selected"Multiple3/option
/select
jquery
代码:$("p").append( "bSingle:/b " + $("#single").val() + "
bMultiple:/b " + $("#multiple").val().join(", "));
结果:[ pbSingle:/bSinglebMultiple:/bMultiple, Multiple3/p]
2.有参val(val):设置每一个匹配元素的值。在 jQuery 1.2, 这也可以为check,select,radio元件赋值,返回一个jquery对象
html页面代码:
input type="text"/
jquery代码:$("input").val("hello world!");
结果:hello world!