-1

我对 jquery 很不好,我应该请求原谅:)

我有一个与此类似的 div 元素:

<div id="MyDiv"><span id="Title"></span><div id="Text"></div></div>

我用正确的选择器找到它:

var myDiv = $("#MyDiv")

现在我有了这个包装集,我想找到“标题”跨度和“文本”div,在每个中放置一些文本,而不修改页面中的“MyDiv”div,这样我就可以执行以下操作:

CallMyFunction(myDiv);

我怎么做?

谢谢你的帮助。

4

3 回答 3

0

由于您使用的是 ID,因此您可以直接访问它们:

$("#Title").text("My title text");
$("#Text").text("My text");

并获取 html:

var myHTML = $("#MyDiv").html();

如果您有多个 ID 为Titleor的元素Text,则您的HTML 无效

如果是这样,您需要将它们更改为类,那么您将使用.find()

$("#MyDiv").find(".Title").text("My title text");
$("#MyDiv").find(".Text").text("My text");
于 2012-04-23T21:28:36.540 回答
0

要将一些文本添加到 span #Title

 $('#Title').text('Some Text'); 
 //Use .html inplace of .text incase if you are adding html content

同样在 div 内部#Text

 $('#Text').text('Some More Text'); 
 //Use .html inplace of .text incase if you are adding html content

现在发送整个内容使用.html()功能,如下所示,

var myDivContent = $("#MyDiv").html();
于 2012-04-23T21:29:22.463 回答
0

好的,听起来你想要做的是,在你的函数调用中,将你想要的 div 的克隆分配给一个变量,编辑它,然后获取它的 html 并用它调用另一个函数,比如

function dosomething(myDiv){
    var texttodosomethingwith = getmodifiedhtml(myDiv);
    //do something with texttodosomethingwith
}

function getmodifiedhtml(element){
    var cloneddiv = element.clone();
    var innerspan = cloneddiv.children('span')[0];
    $(innerspan).text(sometext);
    var innerdiv = cloneddiv.children('div')[0];
    $(innerdiv).text(someothertext);
    return cloneddiv.html();
}

这听起来像你想要的吗?克隆将复制 div 而不将其附加到页面,因此您在保持页面完整的同时获得相同的结构和 id。

请注意,您需要使用元素的 jquery 选择来调用 dosomething,例如 dosomething($("#mydiv"));

于 2012-04-23T23:58:52.490 回答