3

我想重新加载一个特定的 div,它的 id 对应于表元素的 id...(该 div 只有一个表子元素)。

警报说 tID 未定义。

javascript:

function (msg) {
         var tID = $("table", msg).attr('id');
         alert(tID);
         $("#reloadme_"+tID).html(msg);
}

html:

 <div id="reloadme_2036">

        <table id="2036"  class="customCSSclass">
            ...table contents...
        </table>

   </div>

我哪里出错了?

4

3 回答 3

3

find在 jQuery 对象中查找当前元素集的后代.filter,您应该使用which 过滤 jQuery 对象本身中的元素:

$('<table id="001">[...]</table>')
//the jQuery object will contain a reference to the parsed <table> element,
//so you have to .filter() the jQuery object itself to extract it

当然,如果是jQuery对象内部的唯一元素,就不需要过滤了。=]

此外,您还可以使用.find例如查找tr/ tds(或任何其他元素),它们是table您的 jQuery 对象内部引用的元素的后代。

于 2013-01-16T02:51:16.123 回答
1

也许这就是你要找的东西?

function reload(msg) {
  var tID = msg.match(/id="(\d{1,4})"/i)[1]; //find 1 to 4 digits in the id attribute
  alert(tID);  //alerts 2036
  $("#reloadme_"+tID).html(msg); //adds the content to the div
}
reload('<table id="2036" class="customCSSclass"> ...table contents... </table>');

如果是这样,您可能正在寻找的是 javascript 的 .match() 方法,该方法将在字符串中查找 id 号。

查看JSFiddle

于 2013-01-16T02:49:59.493 回答
0

你必须像这样尝试

var msg='<table id="2036"  class="customCSSclass"></table>';
alert($(msg).attr("id"));
于 2013-01-16T02:53:54.857 回答