2
var s = '<h1>heading</h1><p>para</p>';
var $s = $(s).not('h1');
alert($s);

这条消息只是说我“[object Object]”。其实我想得到 HTMLString 说

<p>para</p>

然后我想将该 HTMLString 插入 DIV 标记。

$("#_Div_PreviewPane").html($s);

_Div_PreviewPane 是 DIV 元素。

每一个建议都将不胜感激。

更新

请让我修改我的代码,实际上我的实际代码如下所示。

var s = 'aaa<br /> '+
'<br />'+
'<div class="_Individual_Product_">'+
'<table style="width: 385px; height: 105px;" cellspacing="0" cellpadding="0">'+
 '   <tbody>'+
 '       <tr>'+
 '           <td> <img class="RotatorImage" id="CMSEditor_thumbRotator_i1_smallImage"     style="width: 100px; height: 100px;" alt="Product image" src="http://localhost:59761/Images/Products/Accommodation2.jpg" /> </td>'+
 '           <td>'+
 '           <table style="width: 285px; height: 100%;" cellspacing="0" cellpadding="0">'+
 '               <tbody>'+
 '                   <tr>'+
 '                       <td>Field Accommodation Master 1</td>'+
 '                       <td> <select class="dynamicDropDownList"     id="ddl_FieldAccommodationMaster1">'+
 '                       <option value="1">Desc 1</option>'+
 '                       <option value="3">Desc 3</option>'+
 '                       <option value="2">Desc 2</option>'+
 '                       </select> </td>'+
 '                   </tr>'+
 '               </tbody>'+
 '           </table>'+
 '           </td>'+
 '       </tr>'+
'    </tbody>'+
'</table>'+
'</div>';
var $s = $(s).not('div._Individual_Product_');
alert($s);
alert($s.html());

$("#_Div_PreviewPane").html($s);
4

6 回答 6

2

alert($s)返回一个空字符串,因为在您的代码中,如果您更改,jQuery 会忽略实际上没有父元素的非元素字符串 textNodes:

var s = 'aaa<br /> '+

至:

var s = '<p>aaa</p><br /> '+

然后你可以使用not方法和text方法返回aaa字符串。

http://jsfiddle.net/XMkSk/

于 2012-10-24T03:23:31.283 回答
2

您需要先将代码包装到某个对象中(这里我使用 a div),否则它不会将所有内容都转换为一个jQuery 对象。然后删除不需要的对象并返回内容.html()

// Wrap and create Jquery element
var $s = $('<div>' + s + '</div>');
// Remove unwanted elements
$s.find('._Individual_Product_').remove();
// Return result
alert($s.html());

演示

于 2012-10-24T03:32:40.440 回答
0

尝试将代码修改为:

var s = '<h1>heading</h1><p>para</p>';
var $s = '<p>'+$(s).not('h1').html()+'</p>';
alert($s);
于 2012-10-24T02:37:46.140 回答
0

尝试这个 :

var s = '<h1>heading</h1><p>para</p>';
var $s = $(s).not('h1');
alert($s.html());

.html() 返回 html 字符串

于 2012-10-24T02:41:11.083 回答
0

您的代码很好,但要提醒文本使用

alert($s.text());

代替

alert($s);

因为$s是一个jQuery object,如果你使用console.log($s)那么你可以看到 <p>para</p>

例子

于 2012-10-24T02:36:46.683 回答
0

尝试这个:

<div id="mydiv"></div>
<script>
var s = '<h1>heading</h1><p>para</p>';
s = $(s).not('h1');
$('#mydiv').html(s);
</script>

​ ​</p>

示例:http: //jsfiddle.net/66WZY/1/

于 2012-10-24T02:36:56.717 回答