使用Jquery检索元素
我希望能够仅通过其附加属性获取页面上的任何元素。例如,在一个页面上使用Jquery检索元素,jquery,Jquery,我希望能够仅通过其附加属性获取页面上的任何元素。例如,在一个页面上 <div id="divId" name="john" style="background-color: red;"> This is alot of text </div> 这将输出“严重终止” 我想将这种方法应用到我的原始div中,所以我已经尝试过了 var e1 = $("div[name='" + 'john' + "']" ).html() e1.style.background
<div id="divId" name="john" style="background-color: red;">
This is alot of text
</div>
这将输出“严重终止”
我想将这种方法应用到我的原始div中,所以我已经尝试过了
var e1 = $("div[name='" + 'john' + "']" ).html()
e1.style.backgroundColor = "lightblue";
这是返回未定义的…我知道有其他方法获取元素,但我想通过这种方式了解我做错了什么
谢谢您的代码中有两个问题 首先是使用
.html()
获取html,它返回实际的html文本,而不是元素,因此无法对其进行样式设置
下面的方法可以解决这个问题
var e1 = $("div[name='" + 'john' + "']" ).get(0);
e1.style.backgroundColor = "lightblue";
此外,您还可以使用.css
jquery方法来设置元素的样式
var e1 = $("div[name='" + 'john' + "']" );
e1.css({
'background-color': "lightblue"
});
最后,如果您不想将自己仅限于div
元素,只需从选择器中删除div即可
var e1 = $("[name='" + 'john' + "']" )
它将选择所有具有
name
属性且john
作为其值的元素。首先,您不必要地将信息连接在一起。你应该这样做:
var e1 = $("div[name='john']" ).html()
只有当您将一个变量放置在选择器中的某个位置时,才真正需要连接,而您没有这样做。也不需要.html()
,因为这将获得div的html内容,您只需要更改元素的CSS
var e1 = $("div[name='" + 'john' + "']" );
e1.css({
'background-color': "lightblue"
});
其次,此时e1
是一个jQuery对象,因此尝试使用普通的vanialla JavaScript访问属性将在以下情况下失败:
e1.style.backgroundColor
您可以使用.get(0)
或[0]
取消对jQuery对象的引用并访问底层节点,如:
e1[0].style.backgroundColor
或
但正确的方法是继续使用jQuery方法,如本例中的.css()
:
e1.css('backgroundColor', 'lightblue');
例如:
var e1=$(“div[name='john']))
//e1.get(0.style.backgroundColor='lightblue';
//e1[0].style.backgroundColor='lightblue';
e1.css(‘背景色’、‘浅蓝色’)代码>
这是大量的文本
可以非常简单,使用变量按数据属性选择:
var mychoice = "North America";
var mything =$('*[data-continent="' + mychoice + '"]');
与任何属性相同html()
返回一个字符串,而不是dom元素,所以最后一个肯定不起作用
e1.css('backgroundColor', 'lightblue');
var mychoice = "North America";
var mything =$('*[data-continent="' + mychoice + '"]');