我这里本地测试过,这两种写法都是可以的,我这里测试过div及input的四种写法,为了效果明显,我将font-size设置为了44px.
首先,第一种写法,是div,id="searchStr",然后给的是html,样式是color为red
然后,第二种写法,是下面的多个属性,是css({}),里面传入一个json对象,用法是不错的,但是有些属性,需要变成驼峰式的写法,比如font-size要换成fontSize,background-color等换成backgroundColor等。但是这种写法,我这里是支持的。
第三种写法,是input配合样式,我觉得这里你可能需要变更一下写法,需要把html换成val方法,因为input元素没有html,只有value属性,对应jquery中就是val方法。
如果继续使用html方法的话,输入框里没有文字,但是dom元素中是插入的
换成第四种,多个属性的话,使用val方法,也是有效果的,
如果继续使用html方法,可以看到虽然输入框里没有文字,但是输入框的大小明显被文字撑开了,所以设置的样式是有效果的。
最后,我这里使用的jquer是百度的压缩2.1.1版本,首先检查一下你使用的jquery的版本,然后去jQuery官方网站上确认一下该版本是否支持这种写法了,一般来讲应该支持的。
CSS中以#开头的是id 选择器,只能应用到一个特定的元素上。比如#nav会应用到id为nav的html 元素,它不能用应用到一类元素上。类选择器以.(一个点)开头,比如你的.intro,它能够应用到所有class="intro"的元素上,并且你也可以通过javascript/jQuery的addClass方法动态改变他们。你的#nav ul li{XXX}会应用到id为nav的元素下面的所有ul元素下面的所以li元素。这里ul和li匹配所有ul和li元素。
不清楚你的具体情况,你可以再写一个类,就是以点开头的那种,然后addClass就应该工作了。
你的写法已经加载了 1.css,只是没有被更新。不被更新是因为 1.css 文件已经被缓存,就算是重新设置 href 也是加载了被缓存的 css。你可以在设置 href 的时候在后面添加一个 query string,例如当前时间,等于是强制更新
$.post('ajax/1.php',function(data) {
var now = new Date().getTime()
$("link[href='css/1.css']").attr('href','css/1.css?' + now)
})