我正在尝试使用jQuery向用户脚本添加搜索链接到在线表单。我在firefox中没有太多工作,我觉得通常在chrome中工作的东西对我来说不是9/10倍。但无论如何......这需要与ff。
我正在从<p>
元素中获取文本并从中创建搜索网址(或尝试)。现在这是我正在尝试的功能应该这样做...但它什么也没做,甚至没有控制台中的任何错误
$(function() {
var companyName = $('p')[7]; // Element that contains the name text
var companyText = companyName.text(); // Retrieve the text from element
var mixRankUrl = $("<a></a>").innerHTML("Search Mixrank"); // Create an <a> element
mixRankUrl.href = 'https://mixrank.com/appstore/sdks?search=' + companyText; // Define the href of the a element
var sdkPara = $('label.control-label')[10]; // Where I want it to go
sdkPara.append(mixRankUrl); // Append the element
});
此外,编写html的人几乎不使用任何ID,并且大多数类被分配给10个或更多元素...所以除非有更好的方法,否则我会使用节点选择器(它保持相同的形式)形式)。
答案 0 :(得分:2)
问题是你尝试在DOM元素上使用jQuery方法。不清楚为什么你的代码没有任何错误。
例如:$('p')[7]
返回一个DOM元素,而$('p').eq(7)
返回一个JQuery对象。因此,您无法在DOM元素上使用text()
之类的jQuery方法。你需要处理jQuery对象。
出于同样的原因,您对标签对象的声明以及链接的href属性的修改有问题。
试试这样:
$(function() {
var companyName = $('p').eq(7); // Element that contains the name text
var companyText = companyName.text(); // Retrieve the text from element
var sdkPara = $('label.control-label').eq(10); // Where I want it to go
var mixRankUrl = $('<a>',{
text: 'Search Mixrank',
href: 'https://mixrank.com/appstore/sdks?search=' + companyText
}).appendTo(sdkPara); // Append the element
});