Javascript 将函数返回传递给JQuery选择器
我从函数中获取一个值,并尝试在Jquery中将其作为选择器传递。JQUery不接受我传递的字符串Javascript 将函数返回传递给JQuery选择器,javascript,jquery,Javascript,Jquery,我从函数中获取一个值,并尝试在Jquery中将其作为选择器传递。JQUery不接受我传递的字符串 var make = function() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; for (var i = 0; i < 5; i++) text += possible.charAt(Math.floor(Math.random() *
var make = function() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < 5; i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
};
var makeimg = function() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < 5; i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
};
var a = make();
var b = makeimg();
var making = '#' + a;
var makingimg = '#' + b;
$("body").append("<div id=" + making + "><img id=" + makingimg + "> </div>");
alert(makingimg);
//set img to image tag
$(makingimg).attr("src", '/img/someimage.png');
$(makingimg).attr("width", '200px');
该警报显示正确的值,当我运行一种类型的函数时,它是一个字符串,但当我将其作为选择器传递时,它不会获取DOM元素
下面是一个带有代码的示例 您正在使用散列设置ID,因此最终
<div id="#dsadAs"><img id="#dsawqQ"></div>
等等,把它改成
$("body").append("<div id=" + a + "><img id=" + b + "> </div>");
您正在使用散列设置ID,因此最终
<div id="#dsadAs"><img id="#dsawqQ"></div>
等等,把它改成
$("body").append("<div id=" + a + "><img id=" + b + "> </div>");
问题是因为您将创建的元素的id属性指定为包含,例如id=foo,这是不正确的。您需要从这些属性中删除 还要注意make和makeimg是完全相同的函数,因此可以删除其中一个。另外,您正在div上设置src-这应该在img上,并且width应该是一个整数。试试这个:
var make = function() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < 5; i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
};
var a = make();
var b = make();
$("body").append("<div id=" + a + "><img id=" + b + "></div>");
$('#' + b).attr({
src: '/img/someimage.png',
width: 200
});
您还可以在创建元素时设置属性,并不再需要再次查询DOM:
$("body").append('<div id="' + a + '"><img id="' + b + '" src="/img/someimage.png" width="200"></div>');
问题是因为您将创建的元素的id属性指定为包含,例如id=foo,这是不正确的。您需要从这些属性中删除 还要注意make和makeimg是完全相同的函数,因此可以删除其中一个。另外,您正在div上设置src-这应该在img上,并且width应该是一个整数。试试这个:
var make = function() {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < 5; i++)
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
};
var a = make();
var b = make();
$("body").append("<div id=" + a + "><img id=" + b + "></div>");
$('#' + b).attr({
src: '/img/someimage.png',
width: 200
});
您还可以在创建元素时设置属性,并不再需要再次查询DOM:
$("body").append('<div id="' + a + '"><img id="' + b + '" src="/img/someimage.png" width="200"></div>');
元素的ID不应以开头。只有选择器应:
var divId = make();
var imgId = makeimg();
$("body").append("<div id=" + divId + "><img id=" + imgId + "> </div>");
//set img to image tag
$( '#' + divId ).attr("src", '/img/someimage.png');
$( '#' + imgId ).attr("width", '200px');
元素的ID不应以开头。只有选择器应:
var divId = make();
var imgId = makeimg();
$("body").append("<div id=" + divId + "><img id=" + imgId + "> </div>");
//set img to image tag
$( '#' + divId ).attr("src", '/img/someimage.png');
$( '#' + imgId ).attr("width", '200px');
创建div时,添加一个前面带有散列的id。您不应该这样做,只有jQuery选择器获取散列,请参见 相反,请执行以下操作:
var making = a; // remove hash
var makingimg = b; // remove hash
$("body").append("<div id=" + making + "><img id=" + makingimg + "> </div>"); // ids added without hash
alert(makingimg);
//set img to image tag
$('#'+makingimg).attr("src", '/img/someimage.png'); // add hash to refer to the element
$('#'+makingimg).attr("width", '200px'); // add hash to refer to the element
创建div时,添加一个前面带有散列的id。您不应该这样做,只有jQuery选择器获取散列,请参见 相反,请执行以下操作:
var making = a; // remove hash
var makingimg = b; // remove hash
$("body").append("<div id=" + making + "><img id=" + makingimg + "> </div>"); // ids added without hash
alert(makingimg);
//set img to image tag
$('#'+makingimg).attr("src", '/img/someimage.png'); // add hash to refer to the element
$('#'+makingimg).attr("width", '200px'); // add hash to refer to the element
虽然其他答案涉及前面有无关内容的ID,但我想提供另一种构建HTML的方法,在添加元素后不需要查找元素:
var a = make();
var b = makeimg();
//create a new div element
var d = $("div");
//create a new img element
var i = $("img");
//set up attributes on both
d.attr('id', a);
i.attr({
'id': b,
'src': '/img/someimage.png',
'width': '200px'
});
//append the image to the div...
d.append(i);
//...and the div to the body
$("body").append(d);
如果您只是使用ID来查找设置src和width属性的元素,那么现在甚至不需要a/b变量和ID属性。而其他答案处理的是前面有无关内容的ID,我想提供另一种构建HTML的方法,在添加元素后不需要查找元素:
var a = make();
var b = makeimg();
//create a new div element
var d = $("div");
//create a new img element
var i = $("img");
//set up attributes on both
d.attr('id', a);
i.attr({
'id': b,
'src': '/img/someimage.png',
'width': '200px'
});
//append the image to the div...
d.append(i);
//...and the div to the body
$("body").append(d);
如果您只使用ID来查找元素以设置src和width属性,那么现在甚至不需要a/b变量和ID属性。哇,有很多高重复率的人回答了这个问题!哇,有很多高级代表在回答这个问题!非常感谢。我知道这会是一件小事。时间一过,我会记下答案的。谢谢。我知道这会是一件小事。时间一过,我就会记下答案。