jQuery prependTo 选择器字符串
jQuery prependTo selector string
所以,我正处于让脚本选择 HTML 网页的正确主体的阶段,但脚本没有选择正确的子元素,而是为每个可能的元素添加了一个图像元素代替。
我在让选择器按我想要的方式工作时遇到了问题,我可以使用一些建议。
(用户名代码 "Twisty",略有改动)
$("a").each(function(i, el){
var $a = $(el);
if($a.attr("href").indexOf(".pdf")){
var $icon = $("<img>", {
src: "img/pdf.png",
alt: "PDF"
}).prependTo($a).position({
my: "right+5 top",
at: "left top",
of: $a
});
}
});
此代码找到图像并将其添加到正确的 HTML 元素上,但 prependTo 选择器未定义。
我尝试了很多可能的解决方案,比如使用 find(".pdf") 等等,但我总是做错事。
尝试复制已发现解决方案的示例:
$("a").each(function(i, el){
var $a = $(el);
if(String($a.attr("href").indexOf(".pdf")))
$(el).children($a).prependTo($(".pdf", el));
});
我想要做的是让选择器将已选择的图像添加到 link 中带有“.pdf”的图像
其中包含 .pdf 的示例元素:
<a href="http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf">ECMAScript Language Specification (an external PDF)</a>
String.prototype.indexOf(searchValue[, fromIndex])
returns 已找到传递的 searchValue
的索引。如果 searchValue
找不到它 returns -1
.
并且因为 -1
是一个 truthy value,在比较中计算为 true
,例如:
if($a.attr("href").indexOf(".pdf")){
//...
}
你的 if(...)
只会被跳过,当 href
属性的内容是 ".pdf"
因为那时 .indexOf(".pdf")
会 return 0
这是一个 falsy value,计算结果为 false
.
您必须明确测试此 "found" 案例:
if($a.attr("href").indexOf(".pdf") > -1){
//...
}
我建议你阅读http://api.jquery.com/attribute-ends-with-selector/
$('a[href$=".pdf"]').each(function(){
$(this).prepend('<img src="img/pdf.png" alt="PDF" />');
$('>img:first',this).position({
my: "right+5 top",
at: "left top",
of: // CAN BE $(this) or $(this)[0], or just remove position
});
});
所以,我正处于让脚本选择 HTML 网页的正确主体的阶段,但脚本没有选择正确的子元素,而是为每个可能的元素添加了一个图像元素代替。
我在让选择器按我想要的方式工作时遇到了问题,我可以使用一些建议。
(用户名代码 "Twisty",略有改动)
$("a").each(function(i, el){
var $a = $(el);
if($a.attr("href").indexOf(".pdf")){
var $icon = $("<img>", {
src: "img/pdf.png",
alt: "PDF"
}).prependTo($a).position({
my: "right+5 top",
at: "left top",
of: $a
});
}
});
此代码找到图像并将其添加到正确的 HTML 元素上,但 prependTo 选择器未定义。
我尝试了很多可能的解决方案,比如使用 find(".pdf") 等等,但我总是做错事。
尝试复制已发现解决方案的示例:
$("a").each(function(i, el){
var $a = $(el);
if(String($a.attr("href").indexOf(".pdf")))
$(el).children($a).prependTo($(".pdf", el));
});
我想要做的是让选择器将已选择的图像添加到 link 中带有“.pdf”的图像
其中包含 .pdf 的示例元素:
<a href="http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf">ECMAScript Language Specification (an external PDF)</a>
String.prototype.indexOf(searchValue[, fromIndex])
returns 已找到传递的 searchValue
的索引。如果 searchValue
找不到它 returns -1
.
并且因为 -1
是一个 truthy value,在比较中计算为 true
,例如:
if($a.attr("href").indexOf(".pdf")){
//...
}
你的 if(...)
只会被跳过,当 href
属性的内容是 ".pdf"
因为那时 .indexOf(".pdf")
会 return 0
这是一个 falsy value,计算结果为 false
.
您必须明确测试此 "found" 案例:
if($a.attr("href").indexOf(".pdf") > -1){
//...
}
我建议你阅读http://api.jquery.com/attribute-ends-with-selector/
$('a[href$=".pdf"]').each(function(){
$(this).prepend('<img src="img/pdf.png" alt="PDF" />');
$('>img:first',this).position({
my: "right+5 top",
at: "left top",
of: // CAN BE $(this) or $(this)[0], or just remove position
});
});